如何在servicestack中仅返回POST请求中的状态代码而不是HTML页面

时间:2011-11-16 12:20:44

标签: servicestack

使用servicestack创建了REST服务,在post请求中我有以下方式返回对象

  return new HttpResult(request)
                {
                    StatusCode = HttpStatusCode.Created,

                };

请求:我在数据库中发布的对象

servicestack post request

当我在fiddler中检查它时,它会在响应正文中呈现整个HTML页面的servicestack,而不是我只想返回状态代码,所以请告诉我该怎么办?

由于

1 个答案:

答案 0 :(得分:5)

之前的版本中存在错误< v3.05在某些情况下不尊重HttpResult ContentType,现在应该在NuGet上使用最新版本的ServiceStack进行修复,或者从以下网址获得:

https://github.com/ServiceStack/ServiceStack/downloads

在此之前,您仍然可以通过更改HttpClient上的接受:application / json 请求标头或在查询字符串上附加?format = json 来强制执行所需的ContentType。你的网址。

所以现在如果您不想将任何DTO序列化,则不要将其添加到HttpResult中:

return new HttpResult() { StatusCode = HttpStatusCode.Created };

请注意,如果在浏览器中调用此服务(或任何接受的Rest客户端:text / html),您仍可能会收到空的Html响应。您可以通过在结果中指定它来强制 ContentType ,如果它具有空的有效负载(例如JSON / JSV),则不会输出任何响应,例如;

return new HttpResult() { 
    StatusCode = HttpStatusCode.Created,
    ContentType = ContentType.Json
};