如何使用Apache HttpClient将序列化对象发送到servlet

时间:2012-10-09 07:24:46

标签: servlets serialization http-post apache-httpclient-4.x apache-httpcomponents

我有一个Main()类,我在其中序列化一个名为Names的类的对象。我使用Apache HttpClient的{​​{1}}来呼叫HttpPost()

servlet

现在,如何发送public static void main(String[] args) { Names names = new Names(); names.setName("ABC"); names.setPlace("Bangalore"); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Name.txt")); out.writeObject(names); out.close(); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://localhost:6080/HttpClientGson/FirstHttpPostServlet"); 对象?我写了以下这一行 ObjectOutputStream

httppost.setEntity(out)只能使用setEntity()类型的对象。是否有其他HttpEntity方法可用于发送序列化对象?

2 个答案:

答案 0 :(得分:2)

您可以使用HttpClient附带SerializableEntity

httpost.setEntity(new SerializableEntity(mySerializableObj, false));

但请注意,只有在绝对需要时才应使用二进制对象序列化。通常应首选其他序列化格式,如XML或JSON。

答案 1 :(得分:0)

您可以使用XStream将对象序列化为XML / JSON。 http://x-stream.github.io/ 然后传递它。