Servlets 如何使用ApacheHttpClient将序列化对象发送到servlet

Servlets 如何使用ApacheHttpClient将序列化对象发送到servlet,servlets,serialization,http-post,apache-httpclient-4.x,apache-httpcomponents,Servlets,Serialization,Http Post,Apache Httpclient 4.x,Apache Httpcomponents,我有一个Main()。我正在使用ApacheHttpClient的HttpPost()调用一个servlet public static void main(String[] args) { Names names = new Names(); names.setName("ABC"); names.setPlace("Bangalore"); ObjectOutputStream out = new ObjectOutputStream(new FileOut

我有一个
Main()。我正在使用ApacheHttpClient的
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
类型的对象。是否有其他
HttpClient
方法可用于发送序列化对象?

您可以使用XStream将对象序列化为XML/JSON。
然后传递它。

您可以使用HttpClient附带的
SerializableEntity

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

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

您需要发送一个
多部分/表单数据
请求。但是,使用Java序列化而不是JSON/XML等更可重用/可交换的数据传输格式是完全错误的。