重试中间件 (on_request_retry)

源码: https://github.com/x-haose/hs-net/blob/main/examples/middleware/retry.py

retry.py
"""
重试中间件 (on_request_retry)

在请求重试时执行,可用于记录重试原因、调整策略等。
"""

from hs_net import SyncNet


def main():
    """记录每次重试的异常信息。"""
    with SyncNet(retries=3, raise_status=True) as net:

        @net.on_request_retry
        def on_retry(exc):
            print(f"  ~ 重试中,原因: {type(exc).__name__}: {exc}")

        try:
            # 访问一个会返回 404 的 URL,触发重试
            net.get("https://example.com/nonexistent-12345")
        except Exception as e:
            print(f"  x 最终失败: {type(e).__name__}")


if __name__ == "__main__":
    main()