Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当由http响应返回时,Python zlib不可解码_Python_Http_Http Headers_Amazon S3_Zlib - Fatal编程技术网

当由http响应返回时,Python zlib不可解码

当由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有什么特别的功能来确保结果可以通过浏览器返回和解压缩吗?与之不同。它

我使用AmazonS3来提供静态文件。当内容类型只是“text/css”并且我没有压缩文件时,返回ok。如果我试图压缩将返回的内容并将内容编码更改为“gzip”,浏览器将无法解码结果。在Chrome中,错误是

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库: