关于HttpClient上传中文乱码的解决办法
来源:互联网 发布:数据机房管理制度 编辑:程序博客网 时间:2024/05/16 00:30
使用过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;
3 0
- 关于HttpClient上传中文乱码的解决办法
- 关于HttpClient上传中文乱码的解决办法
- 关于中文乱码的解决办法
- HTTPCLIENT MultipartEntity 上传中文乱码
- 关于perl中中文乱码的解决办法
- 关于perl中中文乱码的解决办法
- python jason 关于中文乱码的解决办法
- restful httpclient request中文乱码解决办法
- HttpClient中文乱码的解决方案
- 利用FTPClient上传的文件中中文名字乱码解决办法
- 中文乱码的解决办法
- 中文乱码的解决办法
- 解决httpclient上传文件的时候中文文件名乱码的问题
- HttpClient 4.3.* 上传带中文文件名文件文件名乱码问题的解决 - kcher
- moodle 2.0 上传用户 中文乱码解决办法
- 关于Intype写中文出现乱码的解决办法
- 关于PL/SQL查询结果中文乱码的解决办法
- 关于 Keil µVision4 中出现中文乱码的解决办法
- 第10周项目3-血型统计
- hdu4000 && hrbust1625
- NLPIR(ICTCLAS2013) Python版
- Java中serialVersionUID的解释
- 使用synchronized实现同步方法
- 关于HttpClient上传中文乱码的解决办法
- 快速排序
- 同时使用windows和linux系统
- Intent 的Flag属性(Activity在栈位置的主宰者)
- 遍历mysql中所有的数据库和所有的表
- 雅安玛斯诺国际酒店设计
- twisted 定时处理(递归调用callLater)(protocol内)
- Segment
- Swift实用技术系列-如何在navigationbar上添加UISearchBar