你好java开发人员.我收到带有标题和正文的响应,如下所示,但是当我尝试使用下面的代码解压缩时,它会因以下异常而失败:
java.io.IOException: Not in GZIP format
响应:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Encoding: gzip
Server: Jetty(6.1.x)
? ?UMs¢0?=7?ép??6-C?$?g???±???zS????$FÆ?÷?G???8N??Cf°?????o?æJÄ+`:?2
?»??S?L&???_)U?|?%ûíyk_à\,æ] h???x??o?4?ù\#MAHG??(Q¶???Ç??ô[7Fí¼???I%??Z??¿?F;x|?o/A?????????U??0?æ?|J%à{(éUmHµ %?l??Ç9??Ç???5?yë~???íi???
?û???????RtGqè?ójWë???j05???|>?º??j?2?|= ÷²
eY\?P?#5wÑqc????½?t£6q???4?t??=7æƒ???|?;?)?÷??^?{v????>6ä?|
码:
byte[] b= IOUtils.toByteArray(sock.getInputStream());
ByteArrayInputStream bais = new ByteArrayInputStream(b);
GZIPInputStream gzis = new GZIPInputStream(bais);
InputStreamReader reader = new InputStreamReader(gzis);
BufferedReader in = new BufferedReader(reader);
String readed;
while ((readed = in.readLine()) != null) {
System.out.println("read: "+readed);
}
Run Code Online (Sandbox Code Playgroud)
请指教.
谢谢,
普拉迪普
MIME 标头不是 GZIP 格式,而是纯文本格式。在解压缩流之前,您必须先阅读该内容。
另外,为什么不直接使用这个:
InputStream in = sock.getInputStream();
readHeader(in);
InputStream zin = new GZIPInputStream(in);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5507 次 |
| 最近记录: |