如何在 urllib3 的 Retry 类中自定义重试/重定向逻辑

How to customize retry/redirect logic in urllib3's Retry class

提问人:Phil Adams 提问时间:11/16/2023 更新时间:11/16/2023 访问量:29

问:

我有一个基于 python 的库,用作处理 REST API 请求/响应 (https://github.com/IBM/python-sdk-core) 的启用层。在幕后,它使用 requests 和 urllib3 库,但在大多数情况下对用户隐藏了这些较低级别的详细信息。 该库使用 urllib3 Retry 类来启用自动重试。Retry 类支持指定应从重定向请求中删除的标头的参数。不幸的是,这是一个全有或全无的命题,我希望对这些“安全”标头的删除/包含有更多的控制权。例如,仅当原始请求 URL 的主机和重定向 URL 的主机都位于“受信任域”中时,我才希望在重定向的请求中包含 Authorization 标头。因此,参数的简单配置是不够的,因为在我的情况下,决策需要有条件的。remove_headers_on_redirectremove_headers_on_redirect

除了子类化urllib3重试类之外,我有什么方法可以实现这种有条件地包含安全标头?理想情况下,urllib3 Retry 类将支持某种回调钩子,以允许我将自定义逻辑包含在重试和/或重定向请求的过程中。

注意:我有一个关于 Java okhttp 库的类似问题,这里是:okhttp redirect with Authorization header?

python请求 urllib3

评论

0赞 relent95 11/16/2023
这是不具体的。您已经知道该功能不受支持。为什么不实现一个原型,如果你遇到一个问题,就问一个具体的问题呢?实现自定义 Retry 类的想法是正确的方向。请参阅该属性的实现。您可以在方法中调整该属性。(修改 的返回对象。remove_headers_on_redirectRetry.increment()super().increment(...)

答: 暂无答案