3.33URL 构建与重定向
在某些特殊场景下(例如需要动态拼接服务路径或查询参数),可以通过自定义逻辑来修改请求的 URL。使用 SetOnUriBuilding 方法即可调整 UriBuilder 对象的各个组成部分,从而构建出最终的请求地址。
设置在构建最终请求 URL 的操作#
在某些特殊场景下(例如需要动态拼接服务路径或查询参数),可以通过自定义逻辑来修改请求的 URL。使用 SetOnUriBuilding 方法即可调整 UriBuilder 对象的各个组成部分,从而构建出最终的请求地址。
HttpRequestBuilder.Post("https://furion.net/") .SetOnUriBuilding(uriBuilder => { uriBuilder.Query = "?id=10"; });注意:SetOnUriBuilding 方法支持多次调用,每次调用的结果会累积叠加。
设置重定向时进行额外配置#
当请求发生自动重定向(例如 301、302、307、308 等状态码)时,框架会基于当前构建器克隆一个新的构建器用于重定向请求。如果你需要在重定向时对新的构建器进行额外处理(例如移除跨域的 Authorization 头、调整请求头、修改超时时间等),可以使用 SetOnRedirect 方法注册自定义回调。
HttpRequestBuilder.Post("https://furion.net/") .SetOnRedirect((originalBuilder, redirectBuilder) => { // 例如重定向时移除 Authorization 标头 redirectBuilder.Headers?.Remove("Authorization"); });参数说明:
originalBuilder:重定向之前的原始构建器(或上一次重定向的构建器),可从中读取原有的配置。redirectBuilder:即将用于重定向的克隆构建器,你可以修改它的任何属性。
注意:SetOnRedirect 方法支持多次调用,每次注册的回调都会在重定向时依次执行。