[Android]解決HttpURLConnection上傳大文件時出現OOM問題

做Android開發時通常使用HttpURLConnection來進行文件的上傳,但是,如果需要上傳較大文件時就不建議使用了,HttpURLConnection使用時如果編寫程序不當會在上傳時導致另人抓狂的OOM問題,在Android開發時如果需要上傳較大文件建議使用Apache HttpComponents的組件HttpClient來進行文件上傳處理。同時這個組件目前還有Android專用的版本(HttpClient for Android),具體用法如下:
1.下載並導入HttpClient組件,可以只下載httpmime-4.1.1.jar或直接下載Android HttpClient版的源代碼


2.寫了一個簡單的上傳代碼,供參考

String filePath = ""; //File Path to set
String fileParam = ""; //Request parameter for file
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
client.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, "utf-8");
try {
MultipartEntity entity = new MultipartEntity();
File file = new File(filePath);
ContentBody fileBody = new FileBody(file); // file
entity.addPart(fileParam, fileBody);
httpPost.setEntity(entity);
HttpResponse response = client.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) { // 成功
//HttpEntity responseEntity = response.getEntity();
Log.i("TAG", "SUCCESSED");
} else {
Log.i("TAG", "FAILED");
}
} catch (Exception e) {
Log.e("TAG", "EXCEPTION");
}


最後附上Apache HttpComponents的下載地址
http://hc.apache.org/downloads.cgi



--------------------------------------------------------------------------------------

- 版權聲明:

- 如在本頁面內無特別說明,本文內容均爲[李大仁博客]原創,本文版權歸[李大仁博客]所有。

- 歡迎轉載,轉載請務必在文章頁面明顯位置提供原文鏈接並註明出處。歡迎您在轉載本文時保留本段聲明。

- 文章標題:[Android]解決HttpURLConnection上傳大文件時出現OOM問題

- 獨立博客:李大仁博客

- 永久鏈接:http://www.lidaren.com/archives/1542

--------------------------------------------------------------------------------------

以上內容由博客自動發佈工具自動發佈,最終顯示內容和效果會與原文內容有所偏差,敬請諒解。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章