我回来了。:) 再次尝试获取 URL 的压缩内容并将其压缩。这次是在 Python 中。#SERVER 代码部分是我用来生成 gzip 压缩数据的脚本。该数据已知良好,因为它适用于Java。#CLIENT 代码部分是我使用客户端尝试读取该数据的代码(用于最终的 JSON 解析)。然而,在这个传输的某个地方,gzip 模块忘记了如何读取它创建的数据。
#SERVER
outbuf = StringIO.StringIO()
outfile = gzip.GzipFile(fileobj = outbuf, mode = 'wb')
outfile.write(data)
outfile.close()
print "Content-Encoding: gzip\n"
print outbuf.getvalue()
#CLIENT
urlReq = urllib2.Request(url)
urlReq.add_header('Accept-Encoding', '*')
urlConn = urllib2.build_opener().open(urlReq)
urlConnObj = StringIO.StringIO(urlConn.read())
gzin = gzip.GzipFile(fileobj = urlConnObj)
return gzin.read() #IOError: Not a gzipped file.
其他注意事项:
outbuf.getvalue()
是一样的urlConnObj.getvalue()
是一样的urlConn.read()