Flurl庫使得在C#中進行異步請求非常簡單。以下是一個使用Flurl進行異步請求的示例:
using Flurl.Http;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
var response = await "https://api.example.com"
.AppendPathSegment("endpoint")
.SetQueryParam("param1", "value1")
.SetQueryParam("param2", "value2")
.GetAsync();
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
else
{
Console.WriteLine($"Request failed with status code {response.StatusCode}");
}
}
catch (FlurlHttpTimeoutException ex)
{
Console.WriteLine($"Request timed out: {ex.Message}");
}
catch (FlurlHttpException ex)
{
Console.WriteLine($"Request failed: {ex.Message}");
}
}
}
在上面的示例中,我們使用了Flurl來發起一個GET請求,并等待異步響應。我們首先構建請求的URL,然后通過調用GetAsync()
方法來發起請求。然后我們檢查響應的狀態碼,如果請求成功,我們通過ReadAsStringAsync()
方法讀取響應內容并打印出來。如果請求失敗,我們捕獲FlurlHttpException
異常并打印出錯誤信息。
需要注意的是,在異步請求中,我們使用await
關鍵字來等待異步操作的完成。這樣可以確保我們的代碼在請求完成后繼續執行,而不會阻塞主線程。