我正在使用Apache的HttpClient从Java类调用servlet。我想向servlet发送一个对象,该对象应使用Serialization保存对象。如何将对象发送到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,我想将一个Names对象发送到servlet。现在我只使用URI调用servlet,但我想传递该对象。
谢谢!
答案 0 :(得分:2)
使用您所显示的类中的Gson之类的库将对象转换为Json String,并将此字符串添加为查询参数 - 向您展示如何使用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);
答案 1 :(得分:1)
将对象发送到URL的最佳方式是将其作为XML或JSON发送,而不是序列化对象并发送它。
如果方法保持不变,发送对象的一种方法是将url中的对象值作为查询字符串附加,例如:
http://localhost:9080/HttpClientPractice/FirstServlet?name=ABC&place=Banglore
另一种方法是将请求方法更改为POST并将对象作为XML或JSON内容发送。