asp.net-web-api - 如何从 WEB API 检索消息?

标签 asp.net-web-api consumer

我创建了一些 web api,当发生错误时,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;
    }
}

任何帮助是极大的赞赏。

最佳答案

获取消息的一种方法是:

((ObjectContent)httpResponseMessage.Content).Value

这将为您提供一个字典,其中还包含 Message .

更新

引用官方页面:

http://msdn.microsoft.com/en-us/library/jj127065(v=vs.108).aspx

您必须改变读取成功响应和错误响应的方式,因为其中一个显然是 StreamContent,另一个应该是 ObjectContent。

更新 2

你试过这样做吗?
if (httpResponseMessage.IsSuccessStatusCode)
    {
        var cust = httpResponseMessage.Content.
                  ReadAsAsync<IEnumerable<CustomerMobil>>().Result;
    }
else
{
   var content = httpResponseMessage.Content as ObjectContent;

   if (content != null)
    {
       // do something with the content
       var error = content.Value;
    }
   else
   {
      Console.WriteLine("content was of type ", (httpResponseMessage.Content).GetType());
   }

}

最终更新(希望...)

好的,现在我明白了 - 只需尝试这样做:
httpResponseMessage.Content.ReadAsAsync<HttpError>().Result;

关于asp.net-web-api - 如何从 WEB API 检索消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14564074/

相关文章:

c# - 无法建立连接,因为目标机器主动拒绝 127.0.0.1 :32450

c# - ODataProperties NextLink 为空

java - 一个 Action 的多个 Java 消费者

asp.net-mvc-4 - 如何在 MVC Web Api RC 中基于自定义逻辑隐藏模型类字段

c# - COMException CreateInstance 发布失败

c# - 如何知道何时停止并行 foreach,其中消费者也是 C# 中的生产者

python - 如何验证 Amazon Kinesis Python 客户端是否正常工作

java - Kafka 不会均匀地填充主题中的分区

c# - 在应用程序配置文件中找不到指定的连接字符串

python - 在 Python 中指示 group_id 时,Kafka 未收到消息