3.33URL 构建与重定向

在某些特殊场景下(例如需要动态拼接服务路径或查询参数),可以通过自定义逻辑来修改请求的 URL。使用 SetOnUriBuilding 方法即可调整 UriBuilder 对象的各个组成部分,从而构建出最终的请求地址。

设置在构建最终请求 URL 的操作#

在某些特殊场景下(例如需要动态拼接服务路径或查询参数),可以通过自定义逻辑来修改请求的 URL。使用 SetOnUriBuilding 方法即可调整 UriBuilder 对象的各个组成部分,从而构建出最终的请求地址。

cs
HttpRequestBuilder.Post("https://furion.net/")    .SetOnUriBuilding(uriBuilder =>    {        uriBuilder.Query = "?id=10";    });

注意SetOnUriBuilding 方法支持多次调用,每次调用的结果会累积叠加。

设置重定向时进行额外配置#

当请求发生自动重定向(例如 301302307308 等状态码)时,框架会基于当前构建器克隆一个新的构建器用于重定向请求。如果你需要在重定向时对新的构建器进行额外处理(例如移除跨域的 Authorization 头、调整请求头、修改超时时间等),可以使用 SetOnRedirect 方法注册自定义回调。

cs
HttpRequestBuilder.Post("https://furion.net/")    .SetOnRedirect((originalBuilder, redirectBuilder) =>    {        // 例如重定向时移除 Authorization 标头        redirectBuilder.Headers?.Remove("Authorization");    });

参数说明

  • originalBuilder:重定向之前的原始构建器(或上一次重定向的构建器),可从中读取原有的配置。
  • redirectBuilder:即将用于重定向的克隆构建器,你可以修改它的任何属性。

注意SetOnRedirect 方法支持多次调用,每次注册的回调都会在重定向时依次执行。