如何从WPF客户端使用ASP.NET 5 WebAPI

时间:2016-01-08 07:21:08

标签: c# wpf asp.net-web-api wcf-web-api

我有一个现有的WPF客户端,我正在使用ASP.NET 5 WebAPI构建新的独立Web服务。 我想公开一些元数据,比如WebApiProxy或.wsdl / Mex,这样我就可以在我的WPF客户端中自动生成一个Proxy类。

2 个答案:

答案 0 :(得分:2)

您不需要在WPF客户端中创建代理以与您的WEB API进行通信。在最简单的场景中,只需使用HTTP客户端来调用Web API端点:

这样的事情可以做到:

// This should come from a factory or something. 
// Try to reuse as much as possible the HttpClient instance
var client = new HttpClient();

//Api Base address
client.BaseAddress = new Uri("http://localhost:9000/");

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

//Sending a GET request to endpoint api/products/1
HttpResponseMessage response = await client.GetAsync("api/person/1");
if (response.IsSuccessStatusCode)
{
    //Getting the result and mapping to a Product object
    Person person = await response.Content.ReadAsAsync<Person>();
}

编辑:我正在编辑原始答案,因为我使用围绕using语句的HtppClient编写了 very bad 。为了避免人们将其复制并粘贴到他们的解决方案中并帮助传播不良软件,我决定对其进行修改。

答案 1 :(得分:-1)

您不需要像传统Web服务那样创建代理类,而是可以使用Web Api的端点/ URL直接访问Web API(因为您在WebApiConfig.cs类中配置了它的路径) 要访问这些端点,您可以使用HttpClient对象,您不需要在客户端应用程序中配置