这系列我们主要介绍一下HttpClient,该类主要是用来从统一资源标识符(URI)标识的资源来发送HTTP请求或者接受HTTP响应,我们可以使用该类做一些WebAPI资源请求和处理,我们通过例子来介绍如何使用HttpClient
首先我们创建一个AspNetCore.HttpClient项目,添加如下代码在Program.cs,该代码实际上调用AddHttpClient方法注册IHttpClientFactory
在BasicUsage方法内部定义了一个HttpRequestMessage对象,该对象主要表示HTTP请求的消息,主要包含HTTP请求头,HTTP请求方法以及数据,我们使用IHttpClientFactory接口中的CreateClient()方法创建一个HttpClient对象,接下来调用HttpClient的SendAsync方法发送异步HTTP请求,该方法返回一个HttpResponseMessage对象,该对象包含了我们请求的结果,我们读取该对象,并将结果序列化到GitHubBranch类的集合中,到此整个请求完成,我们将结果返回给视图:
3 类型化方式声明HttpClient
我们在GitHubService类中对HttpClient做了一些配置,这种方式和命名方式声明HttpClient非常相识,我们把请求的接口封装到了GetAspNetDocsIssues方法中
接下来我们在Program类中添加如下代码:
接着我们在HomeController中通过依赖注入引用GitHubService服务并添加TypedClient方法:
最后在视图中获取请求结果并展示到页面:
运行结果如下:
我们可以使用HttpClient集成第三方REST API库,例如:Refit,Refit是一个.NET第三方的REST API库,Github地址如下:https://github.com/reactiveui/refit
我们在项目Service文件夹下创建一个IGitHubClient接口:
接下来我们在启动项中配置RefitClient对象:
源代码地址:
https://github.com/bingbing-gui/Asp.Net-Core-Skill/tree/master/Fundamentals/AspNetCore.HttpRequest/AspNetCore.HttpClient
参考文献
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-8.0
本文暂时没有评论,来添加一个吧(●'◡'●)