okhttp框架中如何设置post请求的编码格式
2016-08-19 16:47
363 查看
最近公司做的android项目中需要使用post请求发送表单数据,我使用的是okhttp网络请求框架,发现传递过去的中文数据乱码,弄了半天才成功设置了编码格式为utf-8,现在总结分享如下:
这是我修改之前的代码,使用了FormEncodingBuilder类传递参数,于是出现乱码,后来发现不能用FormEncodingBuilder,因为他的编码是默认的,无法修改。
要设置编码格式只能使用如下方法:
params是字符串,格式类似 “key=value&key=value”,如果提交多个键值对可以把键值对拼接成一个字符串,比如
这样设置就OK了。
注:我使用的版本是okhttp2.7,okhttp3以上的版本设置编码就比较简单了,应该是用FormBody
FormEncodingBuilder builder = new FormEncodingBuilder(); builder.add("platform","app"); builder.add("apiCode","sendBusiness"); builder.add("id",id); builder.add("receiver",teachBean.getKey()); builder.add("expirationDate",expirationDate); RequestBody body = builder.build(); Request request = new Request.Builder().url(publishUrl).post(body).build();
这是我修改之前的代码,使用了FormEncodingBuilder类传递参数,于是出现乱码,后来发现不能用FormEncodingBuilder,因为他的编码是默认的,无法修改。
要设置编码格式只能使用如下方法:
RequestBody body = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded;charset=utf-8"), params);
params是字符串,格式类似 “key=value&key=value”,如果提交多个键值对可以把键值对拼接成一个字符串,比如
"platform=app&apiCode=responseBusin&entity=参数值"
这样设置就OK了。
注:我使用的版本是okhttp2.7,okhttp3以上的版本设置编码就比较简单了,应该是用FormBody
相关文章推荐
- AFNetworking框架的基本使用——GET、POST登录 、设置请求与响应的数据格式
- 【okhttp】Post请求设置utf-8编码(解决汉语请求乱码问题)
- 如何在iis中设置站点的编码格式。
- php如何设置编码格式
- 如何查看和设置weblogic的编码格式
- Okhttp框架的二次封装,post json格式的参数
- 如何设置Eclipse的编码格式
- PHP新手教程php 如何设置编码格式
- tomcat编码格式的设置/如何解决get()方式提交中文参数乱码的问题
- eclipse编码格式设置教程、如何为eclipse设置编码格式?
- 解析GB18030编码格式的POST请求参数
- 利用Filter技术设置POST请求的编码
- android http post请求,设置utf-8编码,服务端还是出现中文乱码 解决
- 如何设置python的编码格式为utf-8
- myeclipse如何设置编码格式
- Eclipse中如何设置jsp的模板的编码格式为UTF-8
- 如何查看和设置weblogic的编码格式
- angular中设置$http的post请求的数据传递格式
- 如何在iis中设置站点的编码格式。
- Eclipse如何设置编码格式?(3种方式)