簡介 Flurl是一個用於構建基於HTTP請求的C#代碼的庫。它的主要目的是簡化和優雅地處理網路請求(只用很少的代碼完成請求)。Flurl提供了一種簡單的方法來構建GET、POST、PUT等類型的請求,以及處理響應和異常。它還提供了一些高級功能,如鏈式調用、緩存請求結果、自動重定向等。本文將介紹Fl ...
簡介
Flurl是一個用於構建基於HTTP請求的C#代碼的庫。它的主要目的是簡化和優雅地處理網路請求(只用很少的代碼完成請求)。Flurl提供了一種簡單的方法來構建GET、POST、PUT等類型的請求,以及處理響應和異常。它還提供了一些高級功能,如鏈式調用、緩存請求結果、自動重定向等。本文將介紹Flurl的GET、POST請求功能和序列化功能。
使用流程
1、創建一個APS.NET API站點,作為Flurl的請求源
在API里分別新建控制器,在控制器中建get、post兩個方法。部分方法代碼如下
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "歡迎關註公眾號", "DotNET開發跳槽" };
}
//這是一個post請求,Test是一個類,分別包含了Id和name兩個欄位
[HttpPost("Posttest")]
public string Posttest( Test value)
{
return value.Name;
}
2、新建一個控制台程式,作為Flurl請求的平臺
首先用nuget安裝Flurl,如果在vs里可以使用nuget安裝,需要安裝安裝Flurl和Flurl.Http兩個包。命令如下:
install-package Flurl;
install-package Flurl.Http;
然後新建兩個方法,一個用於請求get,一個用於post。代碼如下:
public async Task<string> Get() {
string url = "http://localhost:5232/api/Test";
var response =await url.GetAsync();
string result = await response.GetStringAsync();
return result;
}
public async Task<string> Post()
{
string url = "http://localhost:5232/api/Test/Posttest";
var test = new { Id = 1, Name = "關註公眾號dotnet開發跳槽" };
var response = await url.PostJsonAsync(test);//將對象序列化為json 並傳參數
string result = await response.GetStringAsync();
return result;
}
}
從上面代碼可以看出,get使用Flurl就兩行代碼返回值,而post加上請求參數也才三行代碼。是不是很簡潔。但是註意的是使用post傳json的時候千萬別序列化對象,因為它已經幫你序列化為JSON字元串了。
上面的例子效果分別如下:
Flurl還自帶序列化和反序列化功能。demo代碼如下:
var json = await url.GetJsonAsync();
//將JSON反序列化為對象
var products = json.DeserializeJson<List<Product>>();
//將對象序列化為json 並傳參數
var response = await url.PostJsonAsync(test);
簡單吧,只需要幾行代碼解決序列化問題,省去了引用或者安裝json包了。
上面只列出了Flurl的部分功能,其它功能請參考官網:
結語
本文講述了Flurl的GET、POST請求功能和序列化功能,適合初學者閱讀和學習,實際項目使用需要根據情況參考官網使用。Flurl 適用於需要執行HTTP請求的.NET應用程式。它可以用於構建 RESTful API 客戶端、Web 爬蟲、數據抓取工具等。希望本文對你的項目有所收穫,同時歡迎留言或者吐槽本文。
推薦閱讀
1、在.NET Core使用 HttpClient 的正確方式
來源公眾號:DotNet開發跳槽