Get HttpResult using the JsonServiceClient

与世无争的帅哥 提交于 2019-12-18 17:02:31

问题


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.


回答1:


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, ...});


来源:https://stackoverflow.com/questions/13297061/get-httpresult-using-the-jsonserviceclient

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!