3.24响应状态码处理
在发送 HTTP 请求并接收响应时,我们经常需要根据不同的响应状态码执行特定的操作。为了实现这一需求,HttpRequestBuilder 提供了 WithStatusCodeHandler 方法,允许我们为特定的状态码配置回调处理逻辑。
在发送 HTTP 请求并接收响应时,我们经常需要根据不同的响应状态码执行特定的操作。为了实现这一需求,HttpRequestBuilder 提供了 WithStatusCodeHandler 方法,允许我们为特定的状态码配置回调处理逻辑。
以下是如何使用 WithStatusCodeHandler 方法的示例代码:
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 请求与响应的处理能力。