OkHttp设置返回数据的编码类型
来源:互联网 发布:淘宝好的零食店铺知乎 编辑:程序博客网 时间:2024/05/21 17:22
OkHttp是一个http连接工具,解决了使用java创建http连接访问服务器的问题,相对于以往的HttpClient而言更加成熟。
在OkHttp的使用当中,一般参考网上的现成的代码教程即可,例如:
http://blog.csdn.net/xiahao86/article/details/44753513
在这些例子当中往往会使用response.body().string()这个方法来获取返回字符串,但是我们依然会碰到返回数据时乱码的问题。
由于OkHttp在解析response的时候依靠的是response头信息当中的Content-Type字段来判断解码方式,例如:
Content-Type:text/html; charset=utf-8
这就遇到了一个问题,就是如果Content-Type没有写charset字段怎么办?OkHttp会使用默认的UTF-8编码方式来解码,那如果万一页面没有写该字段,还使用GBK编码呢?自然而然是乱码了。我就遇到了这个问题,在网上找了一下,没有找到可以直接设置Response返回字符串编码方式的方法,最后想了一个解决方案,不使用response.body().string()自动转为字符串,而是获取流或者byte数组,然后我们手动转为字符串,并且设置编码方式,说起来复杂,其实OkHttp早就给我们留下了方法,所以代码只有两行:
byte[] responseBytes=response.body().bytes();
String responseUrl = new String(responseBytes,”GBK”);
轻松解决。
实测, 可行。
本文转自JAVAEERun.com 转载请注明
http://www.javaeerun.com/p/1461120389148.html
- OkHttp设置返回数据的编码类型
- 使用OkHttp的Interceptor模拟返回数据
- response设置返回的编码
- okhttp框架中如何设置post请求的编码格式
- Okhttp使用post向服务器提交 sring[] 类型的数据
- MyBatis返回类型List<Object>的设置
- 使用okhttp时没有返回json数据
- 使用okhttp时没有返回json数据
- 使用okhttp时没有返回正常数据
- C#返返回多种类型的数据
- java 返回数据的类型提升
- Servlet如何返回XML类型的数据
- spring mvc返回json 类型的 数据
- php curl编码类型设置、文件上传与接收数据
- HttpClient设置编码类型
- iconv_open 中参数的编码类型及返回值
- 数据返回的一个字符串类型的 不是json类型
- 关于Gson解析Okhttp返回的json数据遇到的问题
- Codeforces#418C An impassioned circulation of affection
- Android代码的Builder模式实现
- android的日期格式化 android.text.format.DateFormat类
- Vue-cli proxyTable 解决开发环境的跨域问题
- 第45章 系统状态变量分析(下)
- OkHttp设置返回数据的编码类型
- arguments.callee
- Android开发Toast特效详解
- 使用tshark抓包分析http请求
- list的遍历采用for循环。
- 第46章 信号与系统总结
- list<Map>集合的研究
- Ubuntu 12.04升级到14.04
- 互联网的典型应用