2

我正在使用 Apache 的 HttpClient 从 Java 类调用 servlet。我想将一个对象发送到应该使用序列化保存对象的 servlet。如何将对象发送到 servlet?

public static void main(String[] args) {

        Names names = new Names();
        names.setName("ABC");
        names.setPlace("Bangalore");
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet("http://localhost:9080/HttpClientPractice/FirstServlet");
//Rest of the code

在上面的代码片段中,我有另一个类 Names,我想向 servlet 发送一个 Names 对象。现在我只用 URI 调用 servlet,但我想传递对象。

谢谢!

4

2 回答 2

2

在您显示的类中使用像Gson这样的库将对象转换为 Json 字符串,并将此字符串添加为查询参数 - 向您展示如何使用 Gson 执行此操作。

Gson gson = new Gson();
String json = gson.toJson(names);
HttpGet httpget = new HttpGet("http://localhost:9080/HttpClientPractice/FirstServlet?obj="+json);

在要存储此对象的类中,执行 fromJson(Gson 库中的方法)

Gson gson = new Gson();
Names names = fromJson(json, Names.class);
于 2012-10-08T06:48:20.450 回答
1

将对象发送到 URL 的最佳方式是将其作为 XML 或 JSON 发送,而不是序列化对象并发送它。

如果您的方法保持不变,则发送对象的一种方法是将 url 中的对象值附加为查询字符串,例如:
http://localhost:9080/HttpClientPractice/FirstServlet?name=ABC&place=Banglore
另一种方法是将请求方法更改为 POST 并将对象作为 XML 或 JSON 内容发送。

于 2012-10-08T06:53:12.927 回答