項目介紹
Flurl是一個集現(xiàn)代性、流暢性、異步性、可測試性、可移植性于一身的URL構(gòu)建器與HTTP客戶端庫。它提供了簡潔的API,使得HTTP請求的發(fā)送與URL的構(gòu)建變得極為簡單與直觀。無論是構(gòu)建復雜的URL路徑,還是設(shè)置查詢參數(shù)、請求頭或認證信息,F(xiàn)lurl都能以幾乎零學習成本的方式實現(xiàn)。
項目源代碼
項目使用
安裝項目NuGet包
Flurl.Http 是一個構(gòu)建在 Flurl 基礎(chǔ)之上的 HTTP 客戶端庫。它提供了發(fā)送 HTTP 請求(GET、POST、PUT、DELETE 等)的簡潔、流暢的 API:
Install-Package Flurl.Http
Flurl 是 Flurl.Http 的基礎(chǔ)庫,它主要關(guān)注于 URL 的構(gòu)建和解析:
Install-Package Flurl
URL 構(gòu)建器
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();
文件上傳相關(guān):
var resp = await "http://api.com".PostMultipartAsync(mp => mp
.AddString("name", "hello!") // individual string
.AddStringParts(new {a = 1, b = 2}) // multiple strings
.AddFile("file1", path1) // local file path
.AddFile("file2", stream, "foo.txt") // file stream
.AddJson("json", new { foo = "x" }) // json
.AddUrlEncoded("urlEnc", new { bar = "y" }) // URL-encoded
.Add(content)); // any HttpContent
下載文件:
// filename is optional here; it will default to the remote file name
var path = await "http://files.foo.com/image.jpg"
.DownloadFileAsync("c:\\downloads", filename);
處理超時錯誤:
try {
var result = await url.GetStringAsync();
}
catch (FlurlHttpTimeoutException) {
// handle timeouts
}
catch (FlurlHttpException) {
// handle error responses
}
項目源碼地址
GitHub開源地址:https://github.com/tmenier/Flurl
在線文檔地址:https://flurl.dev
轉(zhuǎn)自https://www.cnblogs.com/Can-daydayup/p/18310536 作者追逐時光者
該文章在 2024/7/19 17:22:14 編輯過