首页 > 后端开发 > Golang > 如何防止 Go HTTP 客户端重定向?

如何防止 Go HTTP 客户端重定向?

DDD
发布: 2024-12-21 06:44:13
原创
630 人浏览过

How Can I Prevent Redirects with the Go HTTP Client?

不使用 Go HTTP 客户端进行重定向

与返回重定向响应的 REST API 交互时,修改 Go HTTP 客户端的行为对于特定的用例,忽略重定向可能是必要的。这是实现此功能的简单有效的方法:

http.Client 的 CheckRedirect 函数优先于默认的重定向跟踪行为。通过自定义此函数,您可以确定何时应遵循重定向。为了防止自动重定向,请提供替代实现:

CheckRedirect: func(req *http.Request, via []*http.Request) error {
  return http.ErrUseLastResponse
}
登录后复制

此配置通知 HTTP 包避免重定向操作。它返回 http.ErrUseLastResponse,指示包使用最新的响应,且正文仍可访问。

在您的示例中,按如下方式更新客户端配置:

client := &http.Client{
  CheckRedirect: func(req *http.Request, via []*http.Request) error {
    return http.ErrUseLastResponse
  },
}
登录后复制

通过设置此配置后,您的脚本将成功建立与端点的连接,检索 HTTP Location 标头以进行进一步处理,并避免被重定向到新资源。与强制错误处理的替代解决方案相比,此方法提供了更优雅且无错误的方法。

以上是如何防止 Go HTTP 客户端重定向?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板