5.33设置请求处理程序
创建于 2026 年 8 月 17 日约 1 分钟读完
IHttpRequestEventHandler 接口允许您定义 HTTP 请求的预处理操作。通过实现该接口,您可以创建自定义的请求处理程序,例如 CustomRequestEventHandler 类:
public class CustomRequestEventHandler : IHttpRequestEventHandler{ // 在发送 HTTP 请求之前的操作 public void OnPreSendRequest(HttpRequestMessage httpRequestMessage) {} // 在收到 HTTP 响应之后的操作 public Task OnPostReceiveResponseAsync(HttpResponseMessage httpResponseMessage, CancellationToken cancellationToken) {} // 当发送 HTTP 请求发生异常时的操作 public void OnRequestFailed(Exception exception, HttpResponseMessage? httpResponseMessage = null) {}}发送 HTTP 请求时,可通过添加 RequestEventHandlerAttribute 特性来设置请求处理程序。
HTTP 声明式请求通过 RequestEventHandlerAttribute 特性来设置请求处理程序。相应的 HTTP 声明式提取器实现为 RequestEventHandlerDeclarativeExtractor 类型,该类型负责解析 RequestEventHandlerAttribute 特性并构建 HttpRequestBuilder 实例所需的请求处理程序配置。
// 在接口定义上应用,影响所有方法[RequestEventHandler(typeof(CustomRequestEventHandler))]public interface IHttpService : IHttpDeclarative{ // 自动应用接口声明 [Get("https://furion.net/")] Task<string> GetStringAsync(); // 在方法上应用 [RequestEventHandler(typeof(CustomRequestEventHandler))] [Get("https://furion.net/")] Task<string> GetStringAsync();}RequestEventHandlerAttribute 包含以下构造函数和属性:
-
构造函数:
new(handlerType):作用于方法或接口,配置请求处理程序。
-
属性:
HandlerType:请求处理程序(Type类型)。