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

OrM*_*Miz 1 wcf gzip postman

我有一个 WCF 服务,我向它发出 API 请求。这个 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
Run Code Online (Sandbox Code Playgroud)

这些是响应头:

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
Run Code Online (Sandbox Code Playgroud)

我唯一怀疑是错误的是来自 Fiddler 的这条消息:

提琴手

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

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

小智 6

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

Accept-Encoding : * 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 就我而言,“*”不起作用 - 我必须明确将其设置为“application/zip” (3认同)