2012-04-08 106 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

相關問題