gpt4 book ai didi

如何在 .NET 中使用 Flurl 高效处理Http请求

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章如何在 .NET 中使用 Flurl 高效处理Http请求由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

简介

官方介绍,Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件.

Url构建

现在有一个登录的接口,地址如下:

?
1
https: //www.some-api.com/login?name=Lee&pwd=123456

我们在处理这个地址的时候,会拼接 login,然后拼接?号,然后拼接参数,中间还要拼接& 得到最终的地址.

使用 Flurl 构建,首先需要通过 Nuget 安装 Flurl 组件.

?
1
2
3
4
5
6
7
var url = "http://www.some-api.com"
           .AppendPathSegment( "login" )
           .SetQueryParams( new
           {
               name = "Lee" ,
               pwd = "123456"
           });

这很简单,这是最简单的Get请求,同样的我们也可以使用 Uri 的扩展方法 。

?
1
var url = new Uri( "http://www.some-api.com" ).AppendPathSegment(...

Http 增强

Flurl 是模块化的,所以还需要安装 Flurl.Http 。

?
1
2
3
4
using Flurl;
using Flurl.Http;
 
var result = await "http://www.some-api.com" .AppendPathSegment( "login" ).GetAsync();

上面的代码会发送一个GET请求,并返回一个IFlurlResponse,可以得到 StatusCode,Headers等,也可以通过 GetStringAsync 和 GetJsonAsync 得到响应内容.

如果只是想获取响应内容,我们看看 Flurl 有多简单:

?
1
2
3
4
T poco = await "http://api.foo.com" .GetJsonAsync<T>();
string text = await "http://site.com/readme.txt" .GetStringAsync();
byte [] bytes = await "http://site.com/image.jpg" .GetBytesAsync();
Stream stream = await "http://site.com/music.mp3" .GetStreamAsync();

Post提交 。

?
1
await "http://api.foo.com" .PostJsonAsync( new { a = 1, b = 2 });

动态类型 dynamic 。

?
1
dynamic d = await "http://api.foo.com" .GetJsonAsync();

设置请求标头:

?
1
2
3
await url.WithHeader( "Accept" , "text/plain" ).GetJsonAsync();
 
await url.WithHeaders( new { Accept = "text/plain" , User_Agent = "Flurl" }).GetJsonAsync();

基础身份验证 。

?
1
await url.WithBasicAuth( "username" , "password" ).GetJsonAsync();

OAuth 2.0 。

?
1
await url.WithOAuthBearerToken( "mytoken" ).GetJsonAsync();

表单提交 。

?
1
2
3
4
await "http://site.com/login" .PostUrlEncodedAsync( new {
     user = "user" ,
     pass = "pass"
});

HttpClient 管理

我们通常不会创建太多的 HttpClient, 过多的连接会耗尽服务器资源,通常会抛出 SocketException 异常,大部分还是使用 HttpClientFactory.

在 Flurl 库中,它是内部管理 HttpClient实例, 通常一个主机Host,会创建一个HttpClient,然后缓存来复用.

Flurl 也很好的支持了IOC容器,你也可以在依赖注入中使用它.

总结

Flurl 组件让Http操作变得更简单易用,你可以在项目中尝试使用它,其他的还有一些功能,可测试可配置等,你都可以在官网找到它的文档 。

以上就是如何在 .NET 中使用 Flurl 高效处理Http请求的详细内容,更多关于.NET 中使用 Flurl 处理Http请求的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/myshowtime/p/14512563.html 。

最后此篇关于如何在 .NET 中使用 Flurl 高效处理Http请求的文章就讲到这里了,如果你想了解更多关于如何在 .NET 中使用 Flurl 高效处理Http请求的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com