开发通用的访问webapi方法。
在common工具文件夹下,新建一个类库项目:Wsk.Core.WebHelper,并引用Package包项目,然后新建一个类HttpClientHelper,用于使用HttpClient方法进行访问webapi:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 新建一个接口IHttpClientHelper,用于HttpClientHelper继承该接口。然后接口内新增一个返回泛型类型的通用的POST访问webapi的方法:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 接着,在HttpClientHelper类里面,进行对该方法的实现:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 说明:虽然使用了using,可以自动释放资源;但是难免还是需要一点时间。在finally下面通过手动释放资源,比自动释放资源,资源释放率会更快,在并发场景下,性能会更好一点点。当然,此处可以不适用using,因为手动释放了,以上纯属个人喜好的风格写法。
再来一个使用Basic加密进行访问的通用方法,写法如上,具体请看代码示例。先新建带用户名和密码参数的接口:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 然后,在HttpClientHelper里面进行对应的实现:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 以上为使用POST的方式进行,如果需要使用例如GET、PUT等,可以自行尝试,写法类似。
接口代码:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) View Code
实现类代码:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 现在再新建一个使用HttpWebRequest的通用访问webapi的方式。在WebHelper项目下面,新建 HttpWebRequestHelper类,以及IHttpWebRequestHelper接口:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 在接口里面,新建一个通用的泛型类型的访问webapi的请求接口:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 然后,在HttpWebRequestHelper类里面,进行有关的实现:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) HttpWebRequest没有Dispose方法,所以此处没有使用using写法,最后需要手动使用Abort方法进行释放资源。
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 接口实现代码:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 现在开发两个webapi进行测试。首先把该类库项目,添加到启动项目的项目引用里面。然后,在启动项目里面的AutofacRegister里面,添加对Wsk.Core.WebHelper类库项目的所有接口进行依赖注入注册:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 注册部分代码:
新建一个实体类,用来当作参数和返回值的测试:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 接着,在控制器里面写几个测试方法进行测试,测试内容如下:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 控制器部分代码:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 运行,然后测试一下1和2接口是否可以使用,如果可以使用,拷贝对应的url地址,当作参数传给主测试api里面。
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 获得到请求的url地址前缀是:http://localhost:35678/WSK/,带入参数进行验证:
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest) 由此可见,两个通用方法都可用。
备注:如果不适用泛型,也可以直接使用返回String即可,不需要进行类型转换。
如果觉得有用,欢迎点赞、评论、推荐或打赏~~
欢迎加入QQ群:
群号:1079830632
十二、.net core(.NET 6)添加通用的访问webapi的方法(包括HttpClient和HttpWebRequest)