大家好,开发过程中遇到个问题 ,我做的是CS项目,在客户端用Httpclient 请求weblogic的HttpServlet 返回的HttpServletResponse用了gzip压缩结果,但是在客户端接收时解压抛异常:java.util.zip.ZipException: Not in GZIP format
server端设置了Header 并且压缩结果流
response.setHeader("Content-Type", "text/html;charset=UTF-8");
response.setHeader("Content-Encoding", "gzip");
gzipstream = new GZIPOutputStream(output);
客户端代码如下
CloseableHttpResponse response = defHttpclient.execute(httppost);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
InputStream inputStream = response.getEntity().getContent();
StringBuffer sb = new StringBuffer();
GZIPInputStream gzin = new GZIPInputStream(inputStream);
InputStreamReader isr = new InputStreamReader(inputStream, charSet);
String tempbf;
long test3 = System.currentTimeMillis();
while ((tempbf = br.readLine()) != null) {
sb.append(tempbf);
}
text_msg = sb.toString();
try {
isr.close();
gzin.close();
inputStream.close();
} catch (Exception ex) {
logger.error("class Request : when inputStream byteOut", ex);
}
}
会在这一行报错
GZIPInputStream gzin = new GZIPInputStream(inputStream);
通过这个方法发现
Header headers[] = response.getAllHeaders();
获得的Header中并没有服务端设置的setHeader("Content-Encoding", "gzip");
请大佬们帮忙分析分析