当由http响应返回时,Python zlib不可解码
我使用AmazonS3来提供静态文件。当内容类型只是“text/css”并且我没有压缩文件时,返回ok。如果我试图压缩将返回的内容并将内容编码更改为“gzip”,浏览器将无法解码结果。在Chrome中,错误是当由http响应返回时,Python zlib不可解码,python,http,http-headers,amazon-s3,zlib,Python,Http,Http Headers,Amazon S3,Zlib,我使用AmazonS3来提供静态文件。当内容类型只是“text/css”并且我没有压缩文件时,返回ok。如果我试图压缩将返回的内容并将内容编码更改为“gzip”,浏览器将无法解码结果。在Chrome中,错误是 Error 330 net::ERR_CONTENT_DECODING_FAILED 在狩猎中 “cannot decode raw data” (NSURLErrorDomain:-1015) python的zlib有什么特别的功能来确保结果可以通过浏览器返回和解压缩吗?与之不同。它
Error 330 net::ERR_CONTENT_DECODING_FAILED
在狩猎中
“cannot decode raw data” (NSURLErrorDomain:-1015)
python的zlib有什么特别的功能来确保结果可以通过浏览器返回和解压缩吗?与之不同。它是可解码的。问题是发送者在对接收者撒谎——这不是确保和谐沟通的好方法。试着叫它“zlib”而不是“gzip”。我也有同样的问题 如果发送标题:
Content-Encoding: gzip
Safari/Chrome显示该错误
但如果您改为发送:
Content-Encoding: deflate
Safari/Chrome对输入进行精细解码。我现在使用的不是模块
zlib
,(originalString=inputFile.read()
,然后是compressedString=zlib.compress(originalString)
)我现在使用的是模块gzip
:
stream = cStringIO.StringIO()
compressor = gzip.GzipFile(fileobj=stream, mode='w')
while True: # until EOF
chunk = inputFile.read(8192)
if not chunk: # EOF?
compressor.close()
return stream.getvalue()
compressor.write(chunk)
然后,结果与
gzip
兼容;我不知道它是否也解决了您的Web服务器问题。谢谢!这让我抓狂。以下是如何使用zlib库: