asp.net-web-api – 如何从WEB API检索邮件?

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – 如何从WEB API检索邮件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一些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);

猜你在找的asp.Net相关文章