解决httpclient上传文件的时候中文文件名乱码的问题
2016-06-24 21:30
711 查看
需要做一下设置:
完整代码:public static String post(String url,Map<String, Object> paramsMap) throws ClientProtocolException, IOException{ HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); entityBuilder.setCharset(Charset.forName("utf-8")); entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); ContentType contentType = ContentType.create(HTTP.PLAIN_TEXT_TYPE, HTTP.UTF_8); //填充参数 Set<String> keySet = paramsMap.keySet(); for(String key:keySet){ Object obj = paramsMap.get(key); if(obj instanceof File){ //参数是File 类型 File file = (File) obj; entityBuilder.addPart(key, new FileBody(file)); }else if(obj instanceof String){ //参数是String 类型 String value = (String) obj; entityBuilder.addPart(key, new StringBody(value,contentType)); }else if(obj instanceof byte[]){ byte[] bytes = (byte[]) obj; entityBuilder.addPart(key, new ByteArrayBody(bytes,ContentType.DEFAULT_BINARY,key)); }else{ throw new IllegalArgumentException(key+"的类型是"+obj.getClass()+"(允许的参数类型为File 或者 String)。"); } } httpPost.setEntity(entityBuilder.build()); HttpResponse response = httpClient.execute(httpPost); if(response.getStatusLine().getStatusCode() == 200){ HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity); return result; } return null; }
相关文章推荐
- php结合安卓客户端实现查询交互实例
- 安卓输入框被虚拟键盘挡住的问题(微信开发)
- Android安卓中循环录像并检测内存卡容量
- Eclipse导出安卓apk文件的图文教程
- 在安卓系统中插入表情到光标位置的代码详解
- Almp 安卓系统上搭建本地php服务器环境的步骤
- 谷歌被屏蔽后如何搭建安卓环境
- 安卓APP测试之使用Burp Suite实现HTTPS抓包方法
- 安卓(Android)聊天机器人实现代码分享
- 安卓(android)怎么实现下拉刷新
- Android中Fragment的生命周期与返回栈的管理
- 分享一个安卓的内置多种工具类的Activity
- 安卓系统中实现摇一摇画面振动效果的方法
- java实现获取安卓设备里已安装的软件包
- 安卓(Android)中如何实现滑动导航
- 六款值得推荐的android(安卓)开源框架简介
- 关于安卓so的兼容性的简单说明
- android(安卓)开源框架——六款【转】