运行环境:Docker,JDK8,Spring Boot,Spring Cloud,Zuul
在微服务网关编写的过程中,需要解析网关转发后响应的报文信息,需要对 RequestContext.getCurrentContext().getResponseDataStream() 的流数据进行解析。
在本地环境及测试环境均运行正常,而在正式环境则出现响应解析乱码的问题。
尝试使用
InputStream stream = ctx.getResponseDataStream();
bytes = StreamUtils.copyToByteArray(stream);
log.info(new String(bytes,"utf8"));
log.info(new String(bytes,"gbk"));
均展示乱码。而同样的代码在本地及测试均正常。
无奈将响应头打印出来,如下:
X-Zuul-Service: http://***:***/***/ ,Server: Apache-Coyote/1.1 ,Content-Type: text/html;charset=UTF-8 ,Date: Mon, 19 Nov 2018 12:16:25 GMT ,Content-Encoding: gzip ,Vary: Accept-Encoding ,Transfer-Encoding: chunked ,Connection: Keep-alive ,Via: 1.1 ID-0002262016416074 uproxy-9 ,
重点在于 Content-Encoding: gzip
Accept-