[Android]解决HttpURLConnection上传大文件时出现OOM问题

    xiaoxiao2026-03-15  7

    做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 setString fileParam = ""; //Request parameter for fileHttpClient 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 -------------------------------------------------------------------------------------- 以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
    转载请注明原文地址: https://ju.6miu.com/read-1307999.html
    最新回复(0)