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

JSP*_*NET 1 c# http-status-codes servicestack

我正在使用调用ThirdParty API JsonServiceClient

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

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

注意我尝试了WebHttpResponse对象而不是Output(response class)。但是我希望statuseCode应该是Output类的属性,而不是的参数 WebHttpResponse。有什么办法可以做到这一点?

myt*_*thz 5

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

var client = new JsonServiceClient(ServiceURL) {
    ResponseFilter = res => res.StatusCode.ToString().Print()
};
Run Code Online (Sandbox Code Playgroud)

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

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