最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在 .NET 中使用 Flurl 高效處理Http請(qǐng)求

 更新時(shí)間:2021年05月08日 08:37:23   作者:SpringLeee  
這篇文章主要介紹了如何在 .NET 中使用 Flurl 高效處理Http請(qǐng)求,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下

簡(jiǎn)介

官方介紹,F(xiàn)lurl是一個(gè)現(xiàn)代的,流利的,支持異步的,可測(cè)試的,可移植的,URL增強(qiáng)和Http客戶(hù)端組件。

Url構(gòu)建

現(xiàn)在有一個(gè)登錄的接口,地址如下:

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

我們?cè)谔幚磉@個(gè)地址的時(shí)候,會(huì)拼接 login,然后拼接?號(hào),然后拼接參數(shù),中間還要拼接& 得到最終的地址。

使用 Flurl 構(gòu)建,首先需要通過(guò) Nuget 安裝 Flurl 組件。

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

這很簡(jiǎn)單,這是最簡(jiǎn)單的Get請(qǐng)求,同樣的我們也可以使用 Uri 的擴(kuò)展方法

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

Http 增強(qiáng)

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

using Flurl;
using Flurl.Http;

var result = await "http://www.some-api.com".AppendPathSegment("login").GetAsync();

上面的代碼會(huì)發(fā)送一個(gè)GET請(qǐng)求,并返回一個(gè)IFlurlResponse,可以得到 StatusCode,Headers等,也可以通過(guò) GetStringAsync 和 GetJsonAsync 得到響應(yīng)內(nèi)容。

如果只是想獲取響應(yīng)內(nèi)容,我們看看 Flurl 有多簡(jiǎn)單:

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 });

動(dòng)態(tài)類(lèi)型 dynamic

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

設(shè)置請(qǐng)求標(biāo)頭:

await url.WithHeader("Accept", "text/plain").GetJsonAsync();

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

基礎(chǔ)身份驗(yàn)證

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 管理

我們通常不會(huì)創(chuàng)建太多的 HttpClient, 過(guò)多的連接會(huì)耗盡服務(wù)器資源,通常會(huì)拋出 SocketException 異常,大部分還是使用 HttpClientFactory。

在 Flurl 庫(kù)中,它是內(nèi)部管理 HttpClient實(shí)例, 通常一個(gè)主機(jī)Host,會(huì)創(chuàng)建一個(gè)HttpClient,然后緩存來(lái)復(fù)用。

Flurl 也很好的支持了IOC容器,你也可以在依賴(lài)注入中使用它。

總結(jié)

Flurl 組件讓Http操作變得更簡(jiǎn)單易用,你可以在項(xiàng)目中嘗試使用它,其他的還有一些功能,可測(cè)試可配置等,你都可以在官網(wǎng)找到它的文檔

以上就是如何在 .NET 中使用 Flurl 高效處理Http請(qǐng)求的詳細(xì)內(nèi)容,更多關(guān)于.NET 中使用 Flurl 處理Http請(qǐng)求的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

榆林市| 阳谷县| 淮北市| 平塘县| 建德市| 景东| 潜山县| 马鞍山市| 大田县| 将乐县| 盐城市| 雅安市| 贵阳市| 隆回县| 五常市| 黄平县| 卓尼县| 辉南县| 全椒县| 绍兴县| 绥滨县| 常山县| 绥棱县| 徐水县| 临汾市| 航空| 腾冲县| 宝鸡市| 巫溪县| 祁阳县| 泰宁县| 延安市| 临颍县| 高安市| 马公市| 古蔺县| 西吉县| 刚察县| 呼伦贝尔市| 宜川县| 凉城县|