我创建了一些Web apis,当发生错误时,api返回使用CreateErrorResponse消息创建的HttpResponseMessage。这样的事情
return Request.CreateErrorResponse( HttpStatusCode.NotFound,"Failed to find customer.");
我的问题是,我无法弄清楚消费者应用程序中的消息(在这种情况下是“找不到客户”)。
以下是消费者样本:
private static void GetCustomer() { var client = new HttpClient(); client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json")); string data = "{\"LastName\": \"Test\",\"FirstName\": \"Test\""; var content = new StringContent(data,Encoding.UTF8,"application/json"); var httpResponseMessage = client.PostAsync( new Uri("http://localhost:55202/api/Customer/Find"),content).Result; if (httpResponseMessage.IsSuccessstatusCode) { var cust = httpResponseMessage.Content. ReadAsAsync<IEnumerable<CustomerMobil>>().Result; } }
任何帮助是极大的赞赏。
解决方法
确保您适当地设置了accept和或者内容类型(解析请求内容时可能有500个错误的来源):
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
那你可以做:
var errorMessage = response.Content.ReadAsstringAsync().Result;
当然这是客户端。 WebApi应根据接受和/或内容类型适当处理内容的格式。好奇,你也可以抛出新的HttpResponseException(“找不到客户”),HttpStatusCode.NotFound);
原文地址:https://www.jb51.cc/aspnet/252409.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。