Java 如何从HttpResponse获取对象?

Java 如何从HttpResponse获取对象?,java,Java,我正在尝试将对象从服务器发送到客户端 客户端: HttpResponse response = client.execute(request); 服务器端: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); out.print(new Objec

我正在尝试将对象从服务器发送到客户端

客户端:

HttpResponse response = client.execute(request);
服务器端:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws  IOException 
{
    PrintWriter out = response.getWriter();
    out.print(new Object());
}
如何从响应中获取对象?
我是否需要改用:

OutputStream out = response.getOutputStream();
如果是,哪种方式更有效?
示例代码:)

谢谢

您不能只发送Object.toString(),因为它不包含有关对象的所有信息。 序列化可能是您所需要的。看看这个:
要发送的对象必须实现可序列化。 然后,您可以在服务器上使用以下内容:

OutputStream out = response.getOutputStream();
oos = new ObjectOutputStream(out);
oos.writeObject(yourSerializableObject);
在客户端,您可以执行以下操作:

in = new ObjectInputStream(response.getEntity().getContent()); //Android
in = new ObjectInputStream(response.getInputStream()); //Java
ObjcetClass obj = (ObjectClass)in.readObject();

或者,您可以使用JSON进行序列化,有几个项目(如jackson、Gson)可以非常轻松地序列化对象。跨平台且易于调试。我认为这是因为它确实发送了一个。print()get对象,但现在我知道了,谢谢。关于上面的代码,我猜您的意思是:OutputStream out=response.getOutputStream();而不是:PrintWriter out=response.getWriter();HttpResponse没有getOutputStream(),所以我的问题仍然是,是的,我是这个意思。对于响应,我认为您必须使用
response.getInputStream()
response.getEntity().getContent()是获取InputStream的唯一方法。好吗?你在为Android编程,对吗?是的,我想这很好。