Flurl 组件使用
简介
先发上官网地址:https://flurl.dev/
Flurl 是一个异步的、可测试的、可移植的、URL 构建器和 .NET 的 HTTP 客户端库;Flurl 在NuGet上可用,可免费用于商业用途。它可以在各种平台上运行,包括 .NET Framework、.NET Core、Xamarin 和 UWP。
它能解决什么痛点
日常服务端调用接口,大都是通过HttpHelper实现,如果没有类库要不自己手敲要不网上找,显得我们技术很low,Flurl就完美解决这个问题。举个简单例子
T poco = "http://api.foo.com".GetJsonAsync<T>();
就是这么简单,直接返回泛型对象;
安装
通过nuget就可以安装,或者去官网下载后引用即可;
最佳实践
官网例子已经很全面了,懒得翻就看我的
Post请求
var response = "www.baidu.com" .WithHeader("content-type", "application/x-www-form-urlencoded") //可以继续增加Header参数 .PostUrlEncodedAsync(new { name = "i am name"}) //post 开头就是post请求,反之亦然 //x-www-form-urlencoded 需要使用 PostUrlEncodedAsync //form-data 需要使用 PostMultipartAsync .ReceiveJson<tt2>(); //post请求接受 response.Wait(); //异步等待结果返回
Get请求
var response2 = "www.baidu.com"
点击查看代码
var response2 = "www.baidu.com" .SetQueryParams(new { name="i am name"}) //QueryString参数 .WithHeader("Authorization", "Bearer dsafadsfadsfasdfasdf==") //Bearer 认证 .GetJsonAsync<tt3>(); //get请求返回 response2.Wait();
.SetQueryParams(new { name="i am name"}) //QueryString参数 .WithHeader("Authorization", "Bearer dsafadsfadsfasdfasdf==") //Bearer 认证 .GetJsonAsync<tt3>(); //get请求返回
response2.Wait();
特殊自定义请求
public class MyCustomHttpClientFactory : DefaultHttpClientFactory
{
public override HttpMessageHandler CreateMessageHandler() { var client = base.CreateMessageHandler() as HttpClientHandler; client.Credentials = CredentialCache.DefaultNetworkCredentials; client.Proxy = new System.Net.WebProxy(); //new 一个新的代理 client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; //使用默认的代理 return client; } } var response333 = new FlurlClient() .Configure(x => { //配置特殊 HttpClient ,放置抛 407 代理错误 x.HttpClientFactory = new MyCustomHttpClientFactory(); }).Request("http://www.baidu.com", "?name=i am name") //Request比较特殊,第一个参数必须Uri.IsValid()通过 //包含协议,域名 .WithBasicAuth("account", "password") // basic auth认证 .GetJsonAsync<tt4>(); response333.Wait();
本文作者:anekos
本文链接:https://www.cnblogs.com/workcn/p/16207641.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步