3.84自定义扩展其他构建器

创建于 2026 年 8 月 17 日约 1 分钟读完

以下构建器均派生自 HttpRequestBuilderConfigurator<THttpBuilder> 抽象类型:

  • HttpFileDownloadBuilder
  • HttpFileUploadBuilder
  • HttpLongPollingBuilder
  • HttpServerSentEventsBuilder
  • HttpStressTestHarnessBuilder

这些构建器共享统一的扩展机制。例如,它们都支持通过 With(builder => { ... }) 方法为底层 HttpRequestBuilder 配置额外的请求参数。

HttpRequestBuilderConfigurator<THttpBuilder> 已内置了一些常用方法(如 Profiler())。如果需要进一步扩展,可以按照如下方式编写扩展方法:

cs
public static class HttpRequestBuilderConfiguratorExtensions{    /// <summary>    ///     当 HTTP 响应的 IsSuccessStatusCode 属性为 <c>false</c> 时,抛出异常。    /// </summary>    /// <param name="configurator">    ///     <see cref="HttpRequestBuilderConfigurator{THttpBuilder}" />    /// </param>    /// <typeparam name="THttpBuilder">派生构建器的具体类型</typeparam>    /// <returns>返回构建器自身实例,支持链式调用。</returns>    public static THttpBuilder EnsureSuccessStatusCode<THttpBuilder>(this HttpRequestBuilderConfigurator<THttpBuilder> configurator)        where THttpBuilder : HttpRequestBuilderConfigurator<THttpBuilder>    {        return configurator.With(builder => builder.EnsureSuccessStatusCode());    }}

这样,上述所有构建器都可以直接调用 EnsureSuccessStatusCode() 方法,并返回自身构建器实例,保持流畅的链式调用体验。