2010-11-22 67 views
0

如何在Android中發送大型(> 5MB)後置參數(以及其他後置參數)?在Android中發送大文本參數

我正在使用org.apache.http.client.methods.HttpPostBasicNameValuePair的列表發送後params。

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost(someURL); 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
nameValuePairs.add(new BasicNameValuePair("param1", "value1")); 
nameValuePairs.add(new BasicNameValuePair("param2", hugeValue)); 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
httpclient.execute(httppost); 

hugeValue是一個非常大的字符串,我想從InputStream閱讀和發送,因爲我讀它。我怎樣才能做到這一點?

+2

你可能會用完的RAM去這條路線,特別是在較小的手機。您可能需要使用`java.net`包中較低級別的`HttpUrlConnection`。 – CommonsWare 2010-11-22 15:52:54

回答

5

CommonsWare是正確的。 HttpUrlConnection和直接寫入輸出流將解決您的內存問題。我已經在我自己的應用程序中使用它來上傳10MB以上的圖像數據。

根據你的那種POST請求的一個很好的例子是:http://www.java.happycodings.com/Other/code21.html