5

我正在使用 servicestack 的新 API 从其余服务方法之一返回 HttpResult。有没有办法使用 JsonServiceClient 获取 HttpResult?

例如:JSonServiceClient.Send<HttpResult>("DELETE","person", new { PersonID = 30 });

我想检查来自 httpresult 的标头信息。

谢谢。

4

1 回答 1

6

没有HttpResult来自 ServiceStack Web 服务的客户端响应之类的东西。

您可以使用 aHttpResult自定义从您的服务返回的 HTTP 响应,例如添加额外的 HTTP 标头。但是客户端看到的响应体仍然只是响应 DTO(如果有的话)。

使用 fiddler、wireshark、chome web 检查器(如果这是一个 Ajax 调用)或类似 ServiceStack 的Request Logger 插件来检查 HTTP 流量。

ServiceStack 的 REST 客户端使用无效

还可以考虑使用适当的客户端 REST API 等client.Delete()client.Get()而不是重载T.Send()方法(通常是 POST)。

在 ServiceClient 中使用 Typed DTO,而不是不支持的匿名类型。

使用 ServiceStack 服务客户端检查 HTTP 标头

ServiceStack 的服务客户端提供本地全局WebResponse(和请求)过滤器,您可以使用这些过滤器来内省为该请求返回的 WebClient 的 HttpWebResponse,例如:

client.ResponseFilter = httpRes => {
   httpRes.Headers.. //do something with returned headers
};
client.Delete(new Person { Id = 30, ...});
于 2012-11-08T20:54:03.663 回答