日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2023/12/4 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 .NET 中使用 Flurl 高效处理Http请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

官方介紹,Flurl是一個現代的,流利的,支持異步的,可測試的,可移植的,URL增強和Http客戶端組件。

Url構建

現在有一個登錄的接口,地址如下:

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

我們在處理這個地址的時候,會拼接 login,然后拼接?號,然后拼接參數,中間還要拼接&?得到最終的地址。

使用 Flurl 構建,首先需要通過 Nuget 安裝?Flurl?組件。

var url = "http://www.some-api.com".AppendPathSegment("login").SetQueryParams(new{name = "Lee",pwd = "123456" });

這很簡單,這是最簡單的Get請求,同樣的我們也可以使用 Uri 的擴展方法

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

Http 增強

Flurl 是模塊化的,所以還需要安裝?Flurl.Http

using Flurl; using Flurl.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".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提交

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

動態類型 dynamic

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

設置請求標頭:

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

基礎身份驗證

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

OAuth 2.0

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

表單提交

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请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。