前言:
当前朋友们对“nethttps配置”可能比较珍视,看官们都需要剖析一些“nethttps配置”的相关知识。那么小编在网络上网罗了一些有关“nethttps配置””的相关资讯,希望你们能喜欢,我们快快来学习一下吧!FluentHttpClient
FluentHttpClient 是用于 REST API 的现代异步 HTTP 客户端, 多平台支持 Linux、Mac 和 Windows。多框架支持,.NET, .NET Core, .NET Framework, .NET Standard 等。
使用 fluent api,一行代码发送 http 请求,并绑定请求体,请求头,以及解析响应内容,反序列化,可选的重试等等。
下面是一个示例:
Blog result = await new FluentClient("").GetAsync("blogs")
.WithArgument("id", 15)
.WithBearerAuthentication(token)
.As<Blog>();
开始使用
从 Nuget 中安装 Pathoschild.Http.FluentClient。
基本用法
这是一个简单的 Get 请求,并把响应内容反序列化为 Item 类。
Item item = await new FluentClient().GetAsync("")
.As<Item>();
还可以定义公共的客户端(这可以使用内置连接池提高性能),然后在构造函数中设置 URL:
using var client = new FluentClient("");Item item = await client
.GetAsync("items/14")
.As<Item>();
客户端库提供了开箱即用的DELETE、GET、POST、PUT和方法。
URL 参数
可以使用匿名对象向请求 URL 添加任意数量的参数:
await client.PostAsync("items/14")
.WithArguments(new { page = 1, search = "some search text" });
或者用字典:
await client.PostAsync("items/14")
.WithArguments(new Dictionary<string, object> { … });
或者单独设置每个参数:
await client.PostAsync("items/14")
.WithArgument("page", 1)
.WithArgument("search", "some search text");
设置请求体
可以直接在 POST 或 PUT 中添加请求体。
await client.PostAsync("search", new SearchOptions(…));
或者使用下面的方式:
await client.GetAsync("search")
.WithBody(new SearchOptions(…));
设置请求头
await client.PostAsync("items/14")
.WithHeader("User-Agent", "Some Bot/1.0.0")
.WithHeader("Content-Type", "application/json");
并支持使用 WithAuthentication WithBasicAuthentication WithBearerAuthentication 更方便的添加认证信息。
简单的重试策略
默认情况下,客户端库不会重试失败的请求,如果需要重试的话,也容易配置:
client.SetRequestCoordinator(
maxRetries: 3,
shouldRetry: request => request.StatusCode != HttpStatusCode.OK,
getDelay: (attempt, response) => TimeSpan.FromSeconds(attempt * 5)
);
FluentHttpClient 使用了 Fluent API, 可以很方便的处理 Http 请求,其他的功能还支持,自定义重试,单元测试等等,感兴趣的同学可以关注下。
项目地址
分享点收藏
标签: #nethttps配置 #nethttpspost请求