项目背景:

由于后台的接口返回有时候并没有像 当时约定的基本数据格式要求来返回,这就导致了,我们的接口在解析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(乱码)相关推荐

  1. RGBD三维重建——SeamlessTex运行环境配置(采坑指南)

    文章链接:Seamless Texture Optimization for RGB-D Reconstruction Github链接:fdp0525/SeamlessTex 采坑准备 安装cere ...

  2. 【图灵机器人】图灵机器人API V2版使用采坑指南

    做一个小东西的时候需要用python和这个接口,使用的时候遇到了一些坑,于是记录一下.本文只记录接入API时候的一些简单坑,更多使用技巧没有说到. 介绍 图灵机器人是以语义技术为核心驱动力的人工智能公 ...

  3. Weex 的采坑指南

    不知道还有没有小伙伴知道Weex框架的,应该有吧,毕竟刚出来的时候影响力还是有的,要不然之前的同事为什么会选择这个框架来开发app呢. Weex框架可跨越三端来完成开发,可以说还不错(那是你只知道We ...

  4. hive on tez集成完整采坑指南(含tez-ui及安全环境)

    hive on tez 介绍 tez是hive官方推荐的一个有向无环图的执行引擎,从测试结果来看,相对于mr是数量级上的提升 使用版本 hadoop 3.1.1 hive 3.1.0 tez 0.9. ...

  5. Ubuntu16.04安装graph-tool采坑指南

    最近在运行BootEA的代码时,代码中使用到了graph-tool这个工具,一开始直接使用conda安装,发现出现一堆奇怪的错误,于是上网找教程,发现这方面的教程特别少,而且基本都没啥效果,于是去了官 ...

  6. 微信公众号获取用户信息采坑指南

    1. OAuth2.0网页授权 这里一定不要在前面加上"http://"等字符,否则就会出现"redirect_uri参数错误": 2.获取code 官方说明如 ...

  7. 国密sm2加密采坑指南

    arrayOfBytes = sm2Engine.processBlock(in, 0, in.length); 如图所示,如果传递的参数是空字符串"",  那么方法process ...

  8. 微信小程序、js循环同步请求采坑指南

    先给个示例: for(var i=0;i<3;i++){setTimeout(function(){console.log(i);}, (i+1)*1000); } 一般,我们会认为,这段代码会 ...

  9. IDEA工具避坑指南(五):如何统一编码为UTF-8 | Tomcat控制台乱码

    前言 在使用IDEA工具之前,必须做的优化之一,统一编码格式:本文以UTF-8为例 注:UTF-8对中文比较友好,这个编码格式一个字符占用3个字节. 步骤 1.常规全局设置 1.点击File--Set ...

  10. 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 ...

最新文章

  1. 只需单击三次,让中文GPT-2为你生成定制故事
  2. Windows 10 还有前途么?
  3. [转]七大.NET开源框架
  4. sqlserver 无法远程连接到服务器,SQLServer2019无法连接远程服务器
  5. SQL注入攻击再度肆虐殃及大量网站
  6. pycharm创建mysql项目_python+Django+pycharm+mysql 搭建首个web项目详解
  7. selenium 使用js执行脚本儿链接整理
  8. socket编程常见函数使用方法
  9. mpAndroidchart 坐标和图表距离_【玩转图表系列】六步,美化你的图表,让老板刮目相看!...
  10. 计算机族应常喝的健康饮品
  11. UVA1583 UVALive3355 Digit Generator
  12. 面试真题------hashmap与hashset
  13. MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
  14. 【字幕制作】生肉资源的字幕问题解决经验分享 入门科普/一键机翻/在线识别/内嵌封装
  15. 小程序自定义下拉刷新
  16. Codeforces--965B--Battleship
  17. delphi 各版本的特性
  18. 人才缺口30万,市场需求每年涨20% ,这一 IT 岗位你知道嘛
  19. 使用python爬取抖音app视频(appium可以操控手机)
  20. hmc如何进入aix系统_HMC配置及操作

热门文章

  1. Here we offer the lowest price for SWG Gold
  2. idea2020不显示光标所在位置的方法名
  3. Microsoft Caffe(msCaffe)无GPU快速配置
  4. 防火防盗竟防不了网络攻击 智能摄像机的网络安全怎么办?
  5. R实例:非典型的数据可视化(一)
  6. Linux服务器 -- 安全篇
  7. 黑马程序员——面向对象篇之多态
  8. 创建hadoop账号
  9. freemarker必须指定模板文件夹吗?
  10. 小白 C 入门并发疯学习路线(书单)