HttpResult的分块响应

时间:2013-06-20 14:56:37

标签: rest servicestack

在构建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也无法解决此问题。

1 个答案:

答案 0 :(得分:1)

如果您提交的测试覆盖了正确行为的pull-request,它将很快合并。