邮递员显示“无法收到任何响应”,即使响应正常

时间:2019-02-24 14:37:20

标签: wcf gzip postman

我有向我提出API请求的WCF服务。 此API调用返回一个JSON响应对象,当在“ Accept-Encoding”标头中使用“ gzip”值时,也可以通过GZIP压缩返回该对象。

问题是,当我尝试在GZIP中获取响应时,Postman显示“无法获得任何响应”,尽管我在Fiddler中看到响应和响应的内容都可以(200状态代码),并且可以轻松地解压缩我的响应内容C#客户端。

我在Postman Console中进行了查看,但看到的只是“错误:标题检查不正确” 。 我几乎没有尝试找到有关此标头检查的任何文档,但找不到任何文档。

这些是请求标头:

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的消息:

Fidler

我将此代码集成到我的代码中,以便在WCF中使用GZIP。 https://github.com/carlosfigueira/WCFSamples/tree/master/MessageEncoder/GZipEncoderAndAutoFormatSelection

基本上,它会在返回客户端之前捕获响应,并使用GZipStream进行压缩。

4 个答案:

答案 0 :(得分:2)

我能够通过使用标头 Accept-Encoding: */* 解决类似的问题,或者如果您想具体执行 Accept-Encoding: */*,HTTP 客户端将能够根据类型处理响应接收到的编码,如果是 gzip,它将解码响应并将其显示为普通文本。

答案 1 :(得分:0)

我遇到了同样的问题,我添加了以下标头来解决此问题。

Accept-Encoding : * 

enter image description here

答案 2 :(得分:0)

当REST服务返回zip内容(也称为WinZip格式)时,出现了这个问题。我通过使用7zip压缩数据以生成真正的gzip格式解决了该错误。

答案 3 :(得分:0)

对我来说,我删除了请求标头中的“Accept-Encoding”。