即使回复正常,邮递员仍显示“无法收到任何回复”

问题描述 投票:0回答:6
我有一个 WCF 服务,我向它发出 API 请求。 此 API 调用返回一个 JSON 响应对象,并且当“Accept-Encoding”标头中使用“gzip”值时,也能够以 GZIP 压缩形式返回它。

问题是当我尝试在 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 的消息:

Fidler

我将此代码集成到我的代码中以便在 WCF 中使用 GZIP。

https://github.com/carlosfigueira/WCFSamples/tree/master/MessageEncoder/GZipEncoderAndAutoFormatSelection

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

wcf gzip postman
6个回答
19
投票
我遇到了同样的问题,我添加了以下标题来解决此问题。

Accept-Encoding : *

enter image description here


4
投票
我能够通过使用标头

Accept-Encoding: */*

 解决类似的问题,或者如果您想具体说明 
Accept-Encoding: */*
 ,这样 HTTP 客户端将能够根据收到的编码类型处理响应,在这种情况下gzip 的,它将解码响应并将其显示为普通文本。


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


0
投票
当 REST 服务返回

zip

 内容(又名 WinZip 格式)时,我遇到了此问题。我通过使用 7zip 压缩数据以生成真正的 
gzip
 格式解决了该错误。


0
投票
发生这种情况时:

$config['compress_output'] = true;
    

0
投票
对我来说 - 我使用curl测试了所有内容,发现邮递员期望返回响应,这样

Content-Encoding

标头将具有值
application/gzip
而不是
gzip

所以 CORRRCT 服务器响应:

Content-Encoding: application/gzip


服务器响应错误:

Content-Encoding: gzip


不知道为什么

Mozilla 文档 懒得提及它

© www.soinside.com 2019 - 2024. All rights reserved.