3.24响应状态码处理

在发送 HTTP 请求并接收响应时,我们经常需要根据不同的响应状态码执行特定的操作。为了实现这一需求,HttpRequestBuilder 提供了 WithStatusCodeHandler 方法,允许我们为特定的状态码配置回调处理逻辑。

在发送 HTTP 请求并接收响应时,我们经常需要根据不同的响应状态码执行特定的操作。为了实现这一需求,HttpRequestBuilder 提供了 WithStatusCodeHandler 方法,允许我们为特定的状态码配置回调处理逻辑。

以下是如何使用 WithStatusCodeHandler 方法的示例代码:

cs
HttpRequestBuilder.Get("https://furion.net/")    // 为状态码 200 配置回调处理    .WithStatusCodeHandler(200, async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 为状态码 200 配置回调处理    .WithStatusCodeHandler(HttpStatusCode.OK, async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 为 200 ~ 299(含) 区间状态码配置回调处理    .WithStatusCodeHandler("200-299", async (responseMessage, cancellationToken) => // 等价于 "200~299"    {        Console.WriteLine("调用状态码处理程序");    })    // 支持比较符号的类型: >=200, <=300, <100, =100, >100    .WithStatusCodeHandler(">=200", async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 为状态码 200、204 和 500 配置统一的回调处理    .WithStatusCodeHandler([200, 204, 500], async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 为所有状态码配置统一的回调处理    .WithAnyStatusCodeHandler(async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 为 200~299 状态码(请求成功)配置统一的回调处理    .WithSuccessStatusCodeHandler(async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    })    // 支持多种状态码表示方式,包括 HttpStatusCode 枚举、字符串表示的状态码、状态码区间、比较符号的类型及通配符    .WithStatusCodeHandler([200, "204", HttpStatusCode.InternalServerError, "200-299", ">=200", "*"], async (responseMessage, cancellationToken) =>    {        Console.WriteLine("调用状态码处理程序");    });

通过 WithStatusCodeHandler 方法,我们可以灵活地根据响应状态码执行不同的操作,从而增强 HTTP 请求与响应的处理能力。