一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 如何在 .NET 中使用 Flurl 高效處理Http請求

如何在 .NET 中使用 Flurl 高效處理Http請求

2021-12-14 15:39SpringLeee ASP.NET教程

這篇文章主要介紹了如何在 .NET 中使用 Flurl 高效處理Http請求,幫助大家更好的理解和學習使用.net技術,感興趣的朋友可以了解下

簡介

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

Url構建

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

?
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(...

Http 增強

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

我們通常不會創建太多的 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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好大好爽好硬我要喷水了 | aaa级大片| 欧美日韩精品乱国产 | 免费国产好深啊好涨好硬视频 | 色综合视频一区二区观看 | 毛片在线免费观看网站 | 男人狂躁女人下半身 | 久久青青草视频在线观 | 高h校花 | ffyybb免费福利视频 | 色综合久久中文字幕 | 暖暖的视频完整视频韩国免费 | 99在线在线视频免费视频观看 | 欧美极品摘花过程 | 成人啪精品视频免费网站 | 草莓视频旧版本 | 免费全看男女拍拍拍的视频 | 白俄罗斯bbbsss| 国产探花视频在线观看 | 亚洲精品国精品久久99热 | 青青青视频免费线看 视频 青青青青青国产免费手机看视频 | 国产精品第四页 | 国产99久久精品 | 午夜国产精品影院在线观看 | 美味情缘韩国在线观看视频 | 精品日韩一区 | 别停好爽好深好大好舒服视频 | 古装床戏做爰无遮挡三级 | 男女做受快插大片 | 欧美人在线一区二区三区 | 国产亚洲精品美女2020久久 | 国产成人在线视频播放 | 国产亚洲精品久久yy5099 | 色悠久久久久综合网小说 | 教室里的激情电影 | 久久国内精品 | 久久88综合 | 国产免费久久精品44 | 精品一久久香蕉国产线看观 | 图片一区| 99久热只有精品视频免费观看17 |