从.NET控制台应用程序中使用Web API

时间:2013-04-29 16:24:47

标签: asp.net-mvc-4 asp.net-web-api console-application

从.NET 4.5控制台应用程序中使用MVC 4.0 Web API时出现以下错误。 “没有MediaTypeFormatter可用于从媒体类型为'text / html'的内容中读取'IEnumerable`1'类型的对象。” 请帮忙! 以下是我的代码:

HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost:30151/");

        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        //List all Customers
        HttpResponseMessage response = client.GetAsync("api/customers").Result;

         if (response.IsSuccessStatusCode)
        {
            var customers = response.Content.ReadAsAsync<IEnumerable<Customer>>().Result;
            foreach (var c in customers)
            {
                Console.WriteLine("ID: {0}\tName: {1}\tAddress: {2}\tEmail: {3}\tPhone: {4}", c.id, c.name, c.address, c.email, c.phone);
            }
        }
        else
        {
            Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
        }

        Console.Read();

2 个答案:

答案 0 :(得分:0)

确保将发布数据的内容类型设置为“application / json”如果您的内容类型为“text / html”,则服务器将无法正确解释

Content-Type: application/json

答案 1 :(得分:0)

您的客户端代码看起来很好。我怀疑服务器没有返回它应该的东西。使用fiddler实际查看服务器返回的内容。