HttpClien实现使用post方式模拟表单上传大文件和字符参数
来源:互联网 发布:什么软件学英语最好 编辑:程序博客网 时间:2024/04/29 23:29
前提:自行准备好httpmime.jar
/** * HttpClien实现模拟表单post提交文件数据和字符参数,并支持大文件上传 * @author dance * */public class HttpClientUploadManager {public interface HttpClientUploadResponse {int SUCCESS = 1;int FAIL = 0;}/** * 该方式是支持大文件上传的,如果用HttpURLConnection一般只能上传5M以内的,再大就OOM了 * @param handler activity宿主handler * @param url * @param filepath 文件路径 * @param fileKey 文件对应的key * @param mapParams 字符参数的key和值封装好传入 */public static void upload(Handler handler, String url, String filepath,String fileKey, HashMap<String, String> mapParams) {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); // fileentity.addPart(fileKey, fileBody);// 字符参数部分Set<String> set = mapParams.keySet();for (String key : set) {entity.addPart(key, new StringBody(mapParams.get(key)));}httpPost.setEntity(entity);HttpResponse response = client.execute(httpPost);Message message = handler.obtainMessage();if (response.getStatusLine().getStatusCode() == 200) { // 成功//获取服务器返回值HttpEntity responseEntity = response.getEntity();InputStream input = responseEntity.getContent();StringBuilder sb = new StringBuilder();int s;while ((s = input.read()) != -1) {sb.append((char) s);}String result = sb.toString();LogUtil.i("HttpClientUploadManager", "http client upload result: " + result);message.what = HttpClientUploadResponse.SUCCESS;message.obj = result;//将数据返回给activity}else {message.what = HttpClientUploadResponse.FAIL;}handler.sendMessage(message);} catch (Exception e) {Message message = handler.obtainMessage();message.what = HttpClientUploadResponse.FAIL;handler.sendMessage(message);}}}
0 0
- HttpClien实现使用post方式模拟表单上传大文件和字符参数
- 使用python模拟post表单上传文件
- android 文件上传(POST方式模拟表单提交)
- java模拟post方式提交表单实现图片上传
- java模拟post方式提交表单实现图片上传
- 通过表单form模拟post方式提交多参数实现文件下载
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- HttpClient的使用——Post方式提交表单和上传文件
- HttpUrlConnection模拟post表单进行文件上传
- 客户端模拟表单post文件上传
- android以post方式实现上传图片和表单
- PHP代码中使用post参数上传大文件
- c# 模拟表单提交,post form 上传文件、大数据内容
- java 模拟表单方式提交上传文件
- java 模拟表单方式提交上传文件
- 关于C++使用libcurl提交表单方式上传文件时提交表单参数[同HTML表单]
- vs2012 启动遇到Cannot find one or more components
- 黑马程序员---基础强化---get和post的区别
- win7 iis6 配置如何让局域网内其它用户访问
- android activity生命周期
- struts2标签获取action中保存在request域的对象
- HttpClien实现使用post方式模拟表单上传大文件和字符参数
- Java Private Constructor
- VS2010对话框:设置对话框控件的Tab顺序
- 计算几何学
- 说说大型高并发高负载网站的系统架构
- cocos2d-x学习笔记18:内存管理01:概述
- android Gallery滑动图片
- 如何将vs2012 update4版本降回update1版本
- 春季警惕白癜风容易扩散