- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何在 .NET 中使用 Flurl 高效处理Http请求由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
官方介绍,Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件.
现在有一个登录的接口,地址如下:
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(...
|
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, 过多的连接会耗尽服务器资源,通常会抛出 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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想解析 JSON 以使用 Flurl 列出。我的 JSON 数据是这样的。 { "api": { "results": 114, "fixtures": { "195
Asp.NET core 根据配置记录每个进入的请求。现在我想为我发送的 Flurl 请求提供相同的功能。最值得注意的是,我当然想知道请求何时失败或未完成。对于调试,我发现详细记录所有请求非常有帮助。
我在集成测试中使用 Flurl 并尝试配置客户端以记录响应(使用 Flurl.Http 3.0.0)。 我正在使用 event handlers以字符串形式读取响应,然后记录它。但是,如果调用代码使用
将 Blazor 从 0.5.1(使用工作 Flurl)更新到 0.6.0 后,通过 flurl 调用会引发异常: WASM: [Flurl.Http.FlurlHttpException] Call
在执行 ReceiveJson() 时,有什么方法可以映射不匹配的属性名称吗?例如,JSON 中的“user_name”应映射到 C# 对象中的“UserName”。 List people = aw
我试图将一些包含字符串数组的数据发布到端点,但收到错误“无效数组” 这样做: .PostUrlEncodedAsync(new { amount = 1000,
我有一个 .NET Core 2.0 WebApi 应用程序,我在其中将“Flurl.Http”(版本 2.1.0)NuGet 包添加到我的项目中。 我正在尝试使用 Flurl 对 Visual St
我是 Flurl 的新手。我正在尝试调用 api,我故意在参数中传递了无效的 apikey,然后 api 失败并显示“禁止”并显示错误代码 403。我如何在异常中处理它? public async
我正在尝试上传包含正文内容的文件。 PostMultipartAsync 是唯一的方法吗? 在我的 C# 后端代码中,我有这个: var resource = FormBind(); var file
您好,我正在使用 Flurl,我需要为帖子设置多个标题,网站上的文档说明要执行 await url.WithHeaders(new { h1 = "foo", h2 = "bar"}).GetJson
我正在制作一个客户端向服务器发出请求的应用程序。服务器使用 node.js 编写,客户端使用 flurl.Http 编写。 当服务器上的请求失败时,创建自定义错误消息总是有用的。像这样的: reque
我正在开发一个应用程序,我有一个使用Owin Token Bearer的后端服务器Azure API应用程序。我正在尝试登录到我的后端并像在我的网络客户端中一样取回 token 。我可以成功登录,但响
我从 Flurl 开始,我想创建一个 POST,但我认为我的 JSON 参数格式有问题。 可以看到JSON参数: { "aaaUser" : { "attributes" : {
我正在对正在运行的 Rest API 进行一些自动监视,我需要从 HttpResponseMessage 对象检索响应主体。我正在使用 Flurl Http:https://flurl.dev/doc
目录 简介 Url构建 Http 增强 HttpClient 管理 总结 简介 官方介绍,Flurl是一个现代的,流利的
我有一个使用依赖注入(inject)的 .NET HostedService。我的客户端工厂创建了一个策略处理程序,在 DI 中,我将 Flurl 配置为使用该工厂。在 Debug模式下,我可以看到客
我使用 Flurl 客户端有一个简单的发布请求,我想知道如何使用 IP、端口、用户名和密码等信息使用代理发出此请求。 string result = await atc.Request(url)
我目前同时使用 Polly 和 Flurl,但我有一个必须添加到每个请求的通用重试策略。我注意到 Polly 允许您使用 AddPolicyHandler(...) 设置默认值,但这需要一个 IHtt
我正在尝试对捕获 FlurlHttpException 的 Controller 进行单元测试并调用 GetResponseJson()在 catch block 中获取错误消息。我试图模拟异常,但是
我正在使用 Flurl访问需要基于证书的身份验证的 API。我从this SO post看到了将证书添加到 WebRequestHandler 并指示 HttpClient 使用此处理程序很容易。 但
我是一名优秀的程序员,十分优秀!