关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单:
第一步:设置MultipartEntityBuilder的编码方式为UTF-8。
builder.setCharset(Charset.forName(HTTP.UTF_8));//设置请求的编码格式
第二步:创建ContentType对象,指定UTF-8编码。
ContentType contentType= ContentType.create(HTTP.PLAIN_TEXT_TYPE, HTTP.UTF_8);
第三步:使用addPart+ StringBody代替addTextBody。如:
StringBody stringBody=new StringBody("中文乱码",contentType); builder.addPart("test",stringBody);
附上完整代码:
ContentType contentType = ContentType.create(HTTP.PLAIN_TEXT_TYPE, HTTP.UTF_8); HttpClient client=new DefaultHttpClient();// 开启一个客户端 HTTP 请求 HttpPost post = new HttpPost(url);//创建 HTTP POST 请求 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setCharset(Charset.forName(HTTP.UTF_8));//设置请求的编码格式 builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);//设置浏览器兼容模式 int count=0; for (File file:files) { // FileBody fileBody = new FileBody(file);//把文件转换成流对象FileBody // builder.addPart("file"+count, fileBody);builder.addBinaryBody("file"+count, file);count++; } builder.addTextBody("method", params.get("method"));//设置请求参数 builder.addTextBody("fileTypes", params.get("fileTypes"));//设置请求参数 StringBody stringBody=new StringBody("中文乱码",contentType); builder.addPart("test", stringBody); HttpEntity entity = builder.build();// 生成 HTTP POST 实体 post.setEntity(entity);//设置请求参数 HttpResponse response = client.execute(post);// 发起请求 并返回请求的响应 if (response.getStatusLine().getStatusCode()==200) {return true; } return false;
【原文地址】
转载于:https://www.cnblogs.com/liaojie970/p/9389901.html
关于HttpClient上传中文乱码的解决办法相关推荐
- php 上传乱码_如何解决php文件上传中文乱码问题
php文件上传中文乱码的解决办法:首先打开相应的PHP文件:然后通过"iconv("UTF-8", "gbk",$name)"方法对文件名进 ...
- 如何解决PHP上传中文出错,如何解决php上传中文乱码的问题
php上传中文乱码的解决办法:首先在相应的文件中添加"enctype="multipart/form-data""方法:然后通过"iconv(&quo ...
- MYSQL使用UTF8中文乱码终极解决办法
转自:http://wenku.baidu.com/view/d2d4f15ba8114431b80dd81f.html MYSQL使用UTF8中文乱码终极解决办法 作者:刘明灵 liumingl ...
- Ubuntu系统中文乱码的解决办法
Ubuntu系统中文乱码的解决办法 文章目录 Ubuntu系统中文乱码的解决办法 1. 安装中文语言 2. 安装语言设置的命令locale 3. 安装中文的相关字体 4. 修改语言的环境变量 4.1 ...
- xp 不能上传邮件附件的解决办法
xp 不能上传邮件附件的解决办法 大漠 12:53:13 inxp 不能上传邮件附件的解决办法 TcpWindowSize 设为65535(十进制) Tcp1323Opts 设为0 注册表条目 [H ...
- freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法
PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. ...
- linux ftp 登录慢,linux中vsftpd登录,上传下载文件慢解决办法linux操作系统 -电脑资料...
vsftpd登录慢主要是nameserver #定义DNS服务器的IP地址没有设置了,这样我们只要设置或更新一下nameserver即可解决了, 在使用vsftpd的过程中,一直以来都有一个问题就是在 ...
- linux unzip乱码,Linux 中unzip解压时中文乱码的解决办法
Linux 中unzip解压时中文乱码的解决办法 Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.zip"时,如果直接使 ...
- Odoo12导出文件中文乱码的解决办法
在odoo12中导出来的csv文件,用excel打开时中文乱码. 解决办法: 1.先用记事本打开,你会发现中文能正常显示,此时另存为时,编码选ANSI,保存: 2.excel打开,中文可以正常显示了
最新文章
- 经典算法书籍推荐以及算法书排行【算法四库全书】
- 基于RDKit探索DrugBank(demo)
- Eclipse C++的配置问题launch failed binary not found
- 领域驱动设计,让程序员心中有码(五)
- 什么是Web 2.0——下一代软件的设计模式和商业模式 (全文翻译—1 博客版序)
- hdu1556 Color the ball
- 分治法求最大和最小值
- ECMAScript版本号总结
- API安全风险与防范
- 口腔科的固定修复计算机辅助设计收,3D打印技术在口腔种植修复中的应用进展...
- Unigui使用IconFont图标
- 使用FeedDemon整理RSS Feed
- 电子设计(1)二极管防电源反接电路
- 易企秀怎么转换成html5,易企秀怎么免费制作h5?
- 【MMD动作+镜头下载】Chocolate Train
- 医疗器械小程序或手机APP软件开发方案
- [AD资料] AD入门之AD10软件安装
- Python进程池apply_async的callback函数不执行的解决方案
- MapReduce的容错机制
- shop--10.店铺列表(后台)