2

在构建 ServiceStack 服务时,我们注意到响应几乎相同,只是 HttpResult 返回的是分块编码响应。

像这样使用 HttpResult 对象时:

return new HttpResult("0", ContentType.PlainText, HttpStatusCode.OK);

我们在 Fiddler 中看到这样的响应:

HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/plain
Server: Microsoft-IIS/8.0
X-Powered-By: ServiceStack/3.954 Win32NT/.NET
X-Powered-By: ASP.NET
Date: Thu, 20 Jun 2013 13:33:17 GMT

但是当像这样使用 Response 属性时:

Response.ContentType = ContentType.PlainText;
Response.StatusCode = (int) HttpStatusCode.OK;
return "1";

我们在 Fiddler 中看到这样的响应:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Server: Microsoft-IIS/8.0
X-Powered-By: ServiceStack/3.954 Win32NT/.NET
X-Powered-By: ASP.NET
Date: Thu, 20 Jun 2013 14:38:39 GMT
Content-Length: 1

我们希望使用该HttpResult版本,因为它看起来更干净,但需要不对其进行编码。每当添加 responseBody 对象时,它似乎都会对响应进行分块。当它被删除时,编码被删除。但是,即使将 显式设置AllowsPartialResponse为 false 也无法解决此问题。

4

1 回答 1

1

如果您提交一个包含测试所涵盖的正确行为的拉取请求,它将很快被合并。

于 2013-08-09T20:19:53.787 回答