2016-04-05 4 views
1

Ich rufe ThirdParty API mit JsonServiceClient.ServiceStack: Wie bekomme ich StatusCode von JsonServiceClient Get Methode

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

Die Ausgabe ist eine Klasse, die eine Antwort aus der API von Drittanbietern darstellt. Ich kann richtig ausgeben. Aber ich möchte StatusCode dieser API-Antwort erfassen. Wie kann ich das machen?

Hinweis Ich habe versucht, WebHttpResponse-Objekt anstelle von Ausgabe (Antwortklasse). Aber ich will statusCode sollte Eigenschaft der Ausgangsklasse nicht Parameter von WebHttpResponse sein. Gibt es einen Weg, dies zu erreichen?

Antwort

4

Sie müßten eine Antwort-Filter verwenden, zum Beispiel:

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

Aber ServiceStack Service Clients nur für das Konsumieren ServiceStack Dienstleistungen gemeint ist, für 3rd-Party-API raubend, würde ich empfehlen HTTP Utils anstelle, zB:

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