2012-04-08 58 views
0

如何将Android客户端的序列化对象发送到Google App Engine Servlet。
我有这样的代码:如何将序列化对象从Android客户端发送到Google App Engine Servlet?

private static HttpClient getHttpClient() 
{ 
if (mHttpClient == null) 
{ 
    mHttpClient = new DefaultHttpClient(); 
    final HttpParams params = mHttpClient.getParams(); 
    HttpConnectionParams.setConnectionTimeout(params, HTTP_TIMEOUT); 
    HttpConnectionParams.setSoTimeout(params, HTTP_TIMEOUT); 
    ConnManagerParams.setTimeout(params, HTTP_TIMEOUT); 
} 
return mHttpClient; 
} 

public static String executeHttpPost(String url, Object obj) throws Exception 
{  
    HttpClient client = getHttpClient(); 
    HttpPost request = new HttpPost(url); 
    request.set(???? 
} 

我如何从这里继续下去吗?
有没有更好的方法?

回答

2

在这里你去:

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
ObjectOutput out = new ObjectOutputStream(bos); 
out.writeObject(obj); 
byte[] yourObjectSerialized = bos.toByteArray(); 

HttpClient client = getHttpClient(); 
HttpPost request = new HttpPost(url); 
request.setEntity(new ByteArrayEntity(yourObjectSerialized)); 
+0

再次,彼得救援..哥们你摇滚! 谢谢。 P.S我怎样才能从 得到ByetsServletRequest请求 – Rami 2012-04-08 20:58:21

+0

请不要这么做 - 发送序列化的Java对象时存在安全性和可移植性两方面的问题。改为使用您控制的格式,例如JSON或Protocol Buffers。 – 2012-04-11 05:04:02

+0

@尼克 - 我也不会这样做,但他明确地要求。 – 2012-04-11 05:28:51

相关问题