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

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

本文主要介绍如何使用Flurl在。net,它帮助人们更好地理解和学习使用。NET技术。感兴趣的朋友可以了解一下。

目录

简介Url构建Http增强HttpClient管理摘要

简介

官方上,Flurl是一个现代的、流畅的、异步的、可测试的、可移植的、url增强的和Http客户端组件。

Url构造

现在有一个登录界面,其地址如下:

https://www.some-api.com/login?name=Leepwd=123456

当我们处理这个地址时,我们将拼接登录,然后拼接?号,然后拼接参数,中间拼接得到最终地址。

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

var url='http://www.some-api.com '。AppendPathSegment('login ')。SetQueryParams(新

{

name='Lee ',

密码='123456 '

});

很简单。这是最简单的Get请求。类似地,我们可以使用Uri扩展方法。

var URL=new Uri(' http://www . some-API . com ')。AppendPathSegment(.

Http增强

Flurl是模块化的,所以你还需要安装Flurl。超文本传送协议(Hyper Text Transport Protocol的缩写)

使用氟;

使用氟。Http

var result=await ' http://www . some-API . com '。AppendPathSegment('login ')。GetAsync();

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

如果你只是想得到响应内容,让我们看看Flurl有多简单:

T poco=await 'http://api.foo.com '。GetJsonAsyncT();

等待'http://site.com/readme.txt'。GetStringAsync();

byte[] bytes=等待'http://site.com/image.jpg'。GetBytesAsync();

等待'http://site.com/music.mp3'。getstream async();

提交后

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

动态类型

动态d=await 'http://api.foo.com '。GetJsonAsync();

设置请求标题:

等待url。WithHeader('Accept ',' text/plain ')。GetJsonAsync();

等待url。with headers(new { Accept=' text/plain ',User_Agent='Flurl' })。GetJsonAsync();

基本认证

等待url。WithBasicAuth('用户名','密码')。GetJsonAsync();

OAuth 2.0

等待url。WithOAuthBearerToken('mytoken ')。GetJsonAsync();

表单提交

等待'http://site.com/login'。PostUrlEncodedAsync(新{

用户='用户',

通过='通过'

});

http客户端管理

通常,我们不会创建太多的HTTP客户端。过多的连接会耗尽服务器资源,通常会引发SocketException异常。大部分还是用HttpClient工厂。

在Flurl库中,它是一个内部管理的HttpClient实例,通常是一个主机Host,它创建一个HttpClient,然后缓存它以供重用。

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

摘要

Flurl组件使Http操作更容易使用。你可以在一个项目里试试,还有其他功能,比如可测性和配置。你可以在官方网站找到它的文档。

这就是如何使用Flurl在?网。中使用Flurl处理Http请求的更多信息。网,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: