【发布时间】:2017-12-29 19:20:23
【问题描述】:
我将 Asp.NET WebApi 作为业务层。我想通过简单地调用业务控制器来调用它的方法。 像这样:(但我无法像服务引用一样添加这个 webapi)
Business.API.UserController Users = new Business.API.UserController();
Users.GetAllUser();
以前我正在使用 WCF Web 服务,我可以通过“添加服务引用”添加它并设置一些端点来创建一个 Web 服务实例。 我不能在 WebAPI 中做到这一点(我认为)。我已经阅读了很多关于它的文章,但其中大多数是关于通过 HttpRequest 调用它的方法。 这样:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:38104/");
client.DefaultRequestHeaders.Accept.Clear();
HttpResponseMessage response;
response = await client.GetAsync("api/Weather");
if (response.IsSuccessStatusCode)
{
WeatherClient[] reports = await response.Content.ReadAsAsync<WeatherClient[]>();
}
}
我认为使用 Web 服务是荒谬的。 是我错了还是我有什么问题?
【问题讨论】:
-
您可以使用 swagger(为您的 Web 服务生成 api 描述的工具),然后使用一些可以从该 api 描述生成客户端的工具,尽管我承认我自己从未这样做过。
-
我在您的代码中看到的主要问题是您为每个请求创建了一个新的
HttpClient。这是一个共享对象,因此您不会耗尽服务器连接。
标签: c# asp.net asp.net-web-api