温馨提示×

c# flurl如何实现异步请求

c#
小樊
87
2024-07-26 18:17:11
栏目: 编程语言

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关键字来等待异步操作的完成。这样可以确保我们的代码在请求完成后继续执行,而不会阻塞主线程。

0