Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get HttpResult using the JsonServiceClient

Tags:

servicestack

I am returning HttpResult from one of the rest service methods using servicestack's new API. Is there a way to get the HttpResult using the JsonServiceClient?

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

I want to inspect the header information from the httpresult.

Thanks.

like image 602
Tech Xie Avatar asked Nov 08 '12 20:11

Tech Xie


1 Answers

There's no such thing as a HttpResult client response from a ServiceStack web service.

You use a HttpResult to customize the HTTP Response that's returned from your service, e.g. Add additional HTTP Headers. But the response body the client sees is still only the Response DTO (if any).

Use fiddler, wireshark, chome web inspector (if this is an Ajax call) or something like ServiceStack's Request Logger plugin to inspect the HTTP traffic.

Invalid use of ServiceStack's REST Clients

Also consider using the appropriate Clients REST API like client.Delete(), client.Get() etc instead of overloading the T.Send() method (which is usually a POST).

Use Typed DTOs in the ServiceClient instead of anonymous types which are not supported.

Inspecting HTTP Headers using the ServiceStack Service Clients

ServiceStack's Service Clients provide Local and Global WebResponse (and Request) filters that you can use to introspect the WebClient's HttpWebResponse returned for that request, e.g:

client.ResponseFilter = httpRes => {
   httpRes.Headers.. //do something with returned headers
};
client.Delete(new Person { Id = 30, ...});
like image 79
mythz Avatar answered Sep 23 '22 14:09

mythz