Skip to content

Proxy Authentication ## Business Purpose

Support HTTP and SOCKS proxies with authentication, including automatic Proxy-Authorization header generation and proxy bypass configuration. ## Current Behaviors - proxy_manager_for in HTTPAdapter manages cached ProxyManagers, supporting SOCKS proxies via SOCKSProxyManager src/requests/adapters.py:66. - proxy_headers method returns Proxy-Authorization header if proxy URL contains credentials src/requests/adapters.py:613. - rebuild_proxies in SessionRedirectMixin handles Proxy-Authorization for redirected requests src/requests/sessions.py:334. - get_environ_proxies reads proxy from environment variables and bypasses via should_bypass_proxies src/requests/utils.py:873. - proxy_bypass_registry checks Windows registry for proxy override rules src/requests/utils.py:99. - select_proxy selects the correct proxy from a dict by scheme src/requests/utils.py:885. ## Technical Implementation Proxies are resolved in resolve_proxies src/requests/utils.py:911 which merges request-level, session-level, and environment proxies. Proxy authentication is added only for HTTP (not HTTPS) proxies. ## Definition of Done - A request through a proxy with credentials sends a Proxy-Authorization: Basic ... header. - A SOCKS5 proxy URL is handled without error. - Environment variable HTTP_PROXY is used for HTTP requests. - should_bypass_proxies returns True for addresses in NO_PROXY list. - Windows registry proxy bypass rules are respected when environment proxies are not set.