Flurl—.NET的HTTP客户端组件
详细的Flurl中文文档请移步到Flurl中文文档(使用教程)查看
前言
在现代的程序开发中,无论是前端开发,还是后端开发,都离不开对接口(API)的调用。前端向后端接口发起Http请求的方式有如:
- 纯Javascript方式:XMLHttpRequest()
- jQuery内置的$.ajax()
- 第三方库Axios
- 第三方库SuperAgent
- 第三方库Request
基于.NET的后端发起Http请求的有如:
- .NET内置的HttpClient
- .NET内置的WebClient
- .NET内置的WebRequest
- 第三方库RestSharp
- 第三方库Flurl
- 第三方库EasyHttp
- 第三方库ServiceStack.HttpClient
当然,以上只是列举了一些常用的类库或者组件,今天这篇文章主要为大家详细分享一下Flurl这个Http客户端组件,包括:
- 什么是Flurl
- 如何安装Flurl
- Flurl的基本用法
什么是Flurl
Flurl是一个现代的、链式的、异步的、可测试的、可移植的、时髦的URL构建器和用于.NET开发的HTTP客户端组件库。
.NET开发者可以通用NuGet管理工具安装Flurl,并且可以免费用于商业用途。它可以运行在各平台上,包括.NET Framework、.NET Core、Xamarin和UWP。
Flurl在GitHub上的开源托管地址为:Flurl
如何安装Flurl
如上文所述,Flurl在NuGet上可用。所以,.NET开发者可以通过NuGet包管理工具进行安装,你可以直接访问Flurl的NuGet查看安装命令,以及当前可用的版本等信息,如:
Nuget包含管理工具的安装命令为:
PM> Install-Package Flurl.Http -Version 2.4.2
dotnet命令行的安装命令为:
dotnet add package Flurl.Http --version 2.4.2
注: 如果你只需要URL的构造器功能,则只安装
Flurl
单个包即可,如果需要除URL构造器之外的所有Flurl的功能,则安装Flurl.Http
开始使用Flurl
正如Flurl宣传语说的,Flurl是一个现代的,链式的,可异步的,可测试的…….NET HTTP客户端组件,那么,接下来我们初步体验一下Flurl的现代,异步,链式的等特性,如下:
var person = await "https://api.com"
.AppendPathSegment("person")
.SetQueryParams(new { a = 1, b = 2 })
.WithOAuthBearerToken("my_oauth_token")
.PostJsonAsync(new
{
first_name = "Claire",
last_name = "Underwood"
})
.ReceiveJson<Person>();
从Flurl实现Http请求的示例代码中,我们可以看到代码的确非常优雅,简单的几行代码就完成了异步,设置Http请求的参数,请求头,请求数据以及最后的数据返回序列化操作。
看了这样简洁的实现,反正我是忍不住要去体验一下Flurl这个基于.NET的HTTP客户端组件了。
再来看一下Flurl的可测试性,如下:
using (var httpTest = new HttpTest()) {
httpTest.RespondWith(200, "OK");
await sut.CreatePersonAsync();
httpTest.ShouldHaveCalled("https://api.com/*")
.WithVerb(HttpMethod.Post)
.WithContentType("application/json");
}
同样是简洁的几行代码,便可以实现Http的测试功能。
本文对Flurl的分享就到这里了,更多的关于Flurl的使用,配置及扩展请移步到Flurl中文文档(使用教程)查看。
怎么样,Flurl是不是你需要的简洁的.NET HTTP客户端组件呢?
我是Rector,感谢你的阅读。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册