ServiceStack:如何从JsonServiceClient Get方法获取StatusCode

时间:2016-04-05 09:37:08

标签: c# servicestack http-status-codes

我使用JsonServiceClient调用ThirdParty API。

var client = new JsonServiceClient(ServiceURL);
var response =  client.Get<Output>("Search?id=" + id);

输出是来自第三方API的类表示响应。我能够正确输出。但我想捕获此API响应的StatusCode。我怎么能这样做?

注意我已尝试过WebHttpResponse对象而不是Output(响应类)。但我希望statuseCode应该是Output类的属性而不是参数 WebHttpResponse。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:5)

您需要使用响应过滤器,例如:

var client = new JsonServiceClient(ServiceURL) {
    ResponseFilter = res => res.StatusCode.ToString().Print()
};

但ServiceStack服务客户端仅用于使用ServiceStack服务,用于使用第三方API,我建议使用HTTP Utils代替,例如:

var response = ServiceURL.CombineWith("Search").AddQueryParam("id",id)
    .GetJsonFromUrl(responseFilter:res => res.StatusCode)
    .FromJson<Output>();