做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

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

以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。




更多相关文章

  1. Android(安卓)文件的上传
  2. Android(安卓)apk 学习笔记 --- Android(安卓)apk fundamental
  3. Android(安卓)之理解 VSYNC 信号
  4. [Android]【安卓】Content Provider详解
  5. 转发---Android(安卓)DRM
  6. 国内Android开发技术大牛推介
  7. android 自学日记(五) ——ListView
  8. Android(安卓)context 文件模式
  9. android中ContentProvider学习心得

随机推荐

  1. Android(安卓)ApiDemos示例解析(2): Simp
  2. [android]组件和控件的区别
  3. Android(安卓)SurfaceFlinger对VSync信号
  4. 转 :android gmail 添加附件
  5. Android地图中根据缩放级别显示Marker
  6. Android学习进阶路线导航线路(Android源
  7. android 加载已经安装的apk方式
  8. 应用开发中的风格和主题(style,themes)
  9. Activity背景全透明
  10. Android事件分发机制分析