问题描述:
- 调用服务正常
- 通过网关调用服务乱码
1.通常我们会想到是不是因为中文?
- 核对接口响应内容编码,正常;
- 核对应用服务器编码,正常;
- 核对网关接收响应内容编码,正常。
2.通过测试,发现不包含中文的返回最终响应的也是乱码。
3.目前为止排除了编码问题,查看网关日志,应用日志,发现网关拿到的数据全部乱码,但是应用返回确是全部正常,问题查到这儿,基本将问题定位到网关和服务之间的交互可能不太正常。
通过抓包工具,发现了服务器端HTTP响应头多了一行: Content-Encoding:gzip;查到这儿,问题已经找到,网关并没有对压缩后的数据进行解压缩,所以响应乱码,特做如下记录:
Content-Type:application/json;charset=utf8
- 用于告知客户端以什么形式,什么编码读取服务端响应的数据。
Content-Encoding:gzip
- 用于压缩媒体类型,如果存在,它的值表示哪些编码应用于实体