问题是当我尝试在 GZIP 中获取响应时,Postman 显示“无法获得任何响应”,尽管我在 Fiddler 中看到响应和响应内容都正常(200 状态代码)并且可以轻松地在我的 C# 客户端中解压缩响应内容.
我查看了邮递员控制台,但我看到的只是
“错误:标题检查不正确”。 我几乎没有试图找到任何有关此标头检查的文档,但找不到任何文档。
这些是请求标头:
POST /correction/v1/document?lang=US HTTP/1.1
Content-Type: text/plain
Accept-Encoding: gzip
User-Agent: PostmanRuntime/7.6.0
Accept: */*
content-length: 630
Connection: close
这些是响应标头:
HTTP/1.1 200 OK
Content-Length: 512
Content-Type: application/json; charset=utf-8
Content-Encoding: gzip
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 24 Feb 2019 14:05:50 GMT
Connection: close
我唯一怀疑错误的是来自 Fiddler 的消息:
https://github.com/carlosfigueira/WCFSamples/tree/master/MessageEncoder/GZipEncoderAndAutoFormatSelection
基本上,它在返回客户端之前捕获响应并使用 GZipStream 进行压缩。
Accept-Encoding: */*
解决类似的问题,或者如果您想具体说明
Accept-Encoding: */*
,这样 HTTP 客户端将能够根据收到的编码类型处理响应,在这种情况下gzip 的,它将解码响应并将其显示为普通文本。
zip
内容(又名 WinZip 格式)时,我遇到了此问题。我通过使用 7zip 压缩数据以生成真正的
gzip
格式解决了该错误。
$config['compress_output'] = true;
Content-Encoding
标头将具有值
application/gzip
而不是
gzip
所以 CORRRCT 服务器响应:
Content-Encoding: application/gzip
服务器响应错误:
Content-Encoding: gzip
Mozilla 文档 懒得提及它