如何在ASP上调用另一个API中的API.. NET Core 2.1



我正在使用一个内置在ASP中的解决方案。NET Core 2.1作为一个控制台应用程序,但它的工作方式像一个web API。我需要调用一个外部API,这是在ASP中创建的。通过在该系统中创建API来获取值并将其重新组织到不同的表中,从而接收JSON格式的数据。

基本上,我需要用另一个API调用一个API。我有什么办法做到这一点吗?,我该怎么做呢?我已经尝试了很多代码,我在网上找到,但似乎没有工作,因为ASP。. NET Core version.

Thanks in advance

如前所述使用/注入http客户端

  • 在你的Startup.cs在ConfigureServices做一些像:
services.AddHttpClient("THE_Client", c =>
{
c.BaseAddress = new Uri(Configuration.GetValue<string>("ClientURL"));
});
  • 在你的控制器(你想调用其他API)添加构造函数注入:
public TheController(HttpClientFactory clientFactory)
{
_clientFactory = clientFactory ?? throw new ArgumentNullException(nameof(clientFactory));
}
  • 使用http客户端
// Create client
HttpClient client = _clientFactory.CreateClient("THE_Client");
// send request
var builder = new UriBuilder(client.BaseAddress)
{
Path = "api/v1/ENDPOINT"
};
var request = new HttpRequestMessage
{
RequestUri = builder.Uri,
Method = HttpMethod.Post,
Content = "blah"
};
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();

最简单的方法是使用内置的HTTP客户端

但是如果你正在寻找性能并且你能够升级你的dotnet版本,你可能会对Http2 gRPC协议感兴趣。

最新更新