HTTP客户端库:Flurl
|
freeflydom
2024年7月19日 17:10
本文热度 1315
|
项目介绍
Flurl是一个集现代性、流畅性、异步性、可测试性、可移植性于一身的URL构建器与HTTP客户端库。它提供了简洁的API,使得HTTP请求的发送与URL的构建变得极为简单与直观。无论是构建复杂的URL路径,还是设置查询参数、请求头或认证信息,Flurl都能以几乎零学习成本的方式实现。
项目源代码
项目使用
安装项目NuGet包
Flurl.Http 是一个构建在 Flurl 基础之上的 HTTP 客户端库。它提供了发送 HTTP 请求(GET、POST、PUT、DELETE 等)的简洁、流畅的 API:
Install-Package Flurl.Http
Flurl 是 Flurl.Http 的基础库,它主要关注于 URL 的构建和解析:
Install-Package Flurl
URL 构建器
using Flurl;
using Flurl.Http;
var resultData = await "https://some-api.com"
.AppendPathSegment("endpoint")
.GetStringAsync();
var result = await "http://api.foo.com".PostJsonAsync(requestObj).ReceiveJson<T>();
var resultStr = await "http://api.foo.com/1".PatchJsonAsync(requestObj).ReceiveString();
var resultStr2 = await "http://api.foo.com/2".PutStringAsync("hello").ReceiveString();
var resp = await "http://api.foo.com".OptionsAsync();
await "http://api.foo.com".HeadAsync();
文件上传相关:
var resp = await "http://api.com".PostMultipartAsync(mp => mp
.AddString("name", "hello!")
.AddStringParts(new {a = 1, b = 2})
.AddFile("file1", path1)
.AddFile("file2", stream, "foo.txt")
.AddJson("json", new { foo = "x" })
.AddUrlEncoded("urlEnc", new { bar = "y" })
.Add(content));
下载文件:
var path = await "http://files.foo.com/image.jpg"
.DownloadFileAsync("c:\\downloads", filename);
处理超时错误:
try {
var result = await url.GetStringAsync();
}
catch (FlurlHttpTimeoutException) {
}
catch (FlurlHttpException) {
}
项目源码地址
GitHub开源地址:https://github.com/tmenier/Flurl
在线文档地址:https://flurl.dev
转自https://www.cnblogs.com/Can-daydayup/p/18310536 作者追逐时光者
该文章在 2024/7/19 17:22:14 编辑过