okhttp返回内容乱码_okHttp 采坑指南-interceptor(乱码)
项目背景:
由于后台的接口返回有时候并没有像 当时约定的基本数据格式要求来返回,这就导致了,我们的接口在解析json 的时候会出错。
出错json场景:
正确格式:
{"code":500,
"msg":"error msg",
"data":{}
}
错误格式:
{"code":500,
"msg":"error msg",
"data":false
}
基于如上的情形,由于data 前后给的数据格式不一样,就会导致json解析出错
所以客户端准备兼容这种比较恶心的错误,
于是三下五除二想到了解决方案:
即:
首先 解析code的值,只有在code==0(表示是正常的数据格式)的情况下才会解析data的属性值;这是最容易想到的解决方案,于是新建了一个okhttp的network类型的interceptor
如图:
一切都很顺利,顺利解决,然后就开心的玩耍去了。
测试的一直没有问题,最后上线的一天,炸雷了,所有的接口全都报错。熬夜加班要解决这个问题,内心慌得一笔
经过了好长时间的努力,排查问题,为啥现在从接口获取的数据是乱码的呢,刚开始怀疑是后台使用的编码不是utf-8,但是和后台确认过,确实使用的是utf-8。百思不得其解,郁闷了....
闷头排查了好久... 内心几度崩溃
最后偶然发现 正式的接口开启了7-zip 的压缩;
由于新写的interceptor 并没有解密服务器压缩后的response,
所以这时候就是乱码。所以就解析失败。
知道真相之后心态崩了。
结论:
测试和正式接口的区别就是,测试没有开启7-zip压缩;
所以问题没有暴露出来。接口上线就暴露出来问题了。
还是自己http基础知识不够扎实,刚开始没有往这方面去想
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[okHttp 采坑指南-interceptor(乱码)]http://www.zyiz.net/tech/detail-118376.html
okhttp返回内容乱码_okHttp 采坑指南-interceptor(乱码)相关推荐
- RGBD三维重建——SeamlessTex运行环境配置(采坑指南)
文章链接:Seamless Texture Optimization for RGB-D Reconstruction Github链接:fdp0525/SeamlessTex 采坑准备 安装cere ...
- 【图灵机器人】图灵机器人API V2版使用采坑指南
做一个小东西的时候需要用python和这个接口,使用的时候遇到了一些坑,于是记录一下.本文只记录接入API时候的一些简单坑,更多使用技巧没有说到. 介绍 图灵机器人是以语义技术为核心驱动力的人工智能公 ...
- Weex 的采坑指南
不知道还有没有小伙伴知道Weex框架的,应该有吧,毕竟刚出来的时候影响力还是有的,要不然之前的同事为什么会选择这个框架来开发app呢. Weex框架可跨越三端来完成开发,可以说还不错(那是你只知道We ...
- hive on tez集成完整采坑指南(含tez-ui及安全环境)
hive on tez 介绍 tez是hive官方推荐的一个有向无环图的执行引擎,从测试结果来看,相对于mr是数量级上的提升 使用版本 hadoop 3.1.1 hive 3.1.0 tez 0.9. ...
- Ubuntu16.04安装graph-tool采坑指南
最近在运行BootEA的代码时,代码中使用到了graph-tool这个工具,一开始直接使用conda安装,发现出现一堆奇怪的错误,于是上网找教程,发现这方面的教程特别少,而且基本都没啥效果,于是去了官 ...
- 微信公众号获取用户信息采坑指南
1. OAuth2.0网页授权 这里一定不要在前面加上"http://"等字符,否则就会出现"redirect_uri参数错误": 2.获取code 官方说明如 ...
- 国密sm2加密采坑指南
arrayOfBytes = sm2Engine.processBlock(in, 0, in.length); 如图所示,如果传递的参数是空字符串"", 那么方法process ...
- 微信小程序、js循环同步请求采坑指南
先给个示例: for(var i=0;i<3;i++){setTimeout(function(){console.log(i);}, (i+1)*1000); } 一般,我们会认为,这段代码会 ...
- IDEA工具避坑指南(五):如何统一编码为UTF-8 | Tomcat控制台乱码
前言 在使用IDEA工具之前,必须做的优化之一,统一编码格式:本文以UTF-8为例 注:UTF-8对中文比较友好,这个编码格式一个字符占用3个字节. 步骤 1.常规全局设置 1.点击File--Set ...
- IDEA工具避坑指南(七):git@github.com: Permission denied|You must supply a key in OpenSSH public key format详解
错误描述 用IDEA通过版本控制器从GitHub拉取目项时,出现下述错误 错误一:IDEA clone项目时,控制台错误: Cloning into 'gitidea'... git@github ...
最新文章
- 只需单击三次,让中文GPT-2为你生成定制故事
- Windows 10 还有前途么?
- [转]七大.NET开源框架
- sqlserver 无法远程连接到服务器,SQLServer2019无法连接远程服务器
- SQL注入攻击再度肆虐殃及大量网站
- pycharm创建mysql项目_python+Django+pycharm+mysql 搭建首个web项目详解
- selenium 使用js执行脚本儿链接整理
- socket编程常见函数使用方法
- mpAndroidchart 坐标和图表距离_【玩转图表系列】六步,美化你的图表,让老板刮目相看!...
- 计算机族应常喝的健康饮品
- UVA1583 UVALive3355 Digit Generator
- 面试真题------hashmap与hashset
- MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
- 【字幕制作】生肉资源的字幕问题解决经验分享 入门科普/一键机翻/在线识别/内嵌封装
- 小程序自定义下拉刷新
- Codeforces--965B--Battleship
- delphi 各版本的特性
- 人才缺口30万,市场需求每年涨20% ,这一 IT 岗位你知道嘛
- 使用python爬取抖音app视频(appium可以操控手机)
- hmc如何进入aix系统_HMC配置及操作