urllib3 is a user-friendly HTTP client library for Python
urllib3 is raising ~$40,000 USD to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects please consider contributing financially to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.
Thank you for your support.
InsecureRequestWarning
was emitted for HTTPS connections when using Emscripten. (#3331)HTTPConnectionPool.urlopen
to stop automatically casting non-proxy headers to HTTPHeaderDict
. This change was premature as it did not apply to proxy headers and HTTPHeaderDict
does not handle byte header values correctly yet. (#3343)ProtocolError
to InvalidChunkLength
when response terminates before the chunk length is sent. (#2860)ProtocolError
to be more verbose on incomplete reads with excess content. (#3261):tada: This release adds experimental support for using urllib3 in the browser with Pyodide! :tada:
Thanks to Joe Marshall (@joemarshall) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from http.client
. Please report all bugs to the urllib3 issue tracker.
urllib3 is raising ~$40,000 USD to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects please consider contributing financially to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.
Thank you for your support.
HTTPResponse.read1()
method. (#3186)HTTPConnection.proxy_is_verified
and HTTPSConnection.proxy_is_verified
to be always set to a boolean after connecting to a proxy. It could be None
in some cases previously. (#3130)headers
passed in a request with json=
would be mutated (#3203)HTTPSConnection.is_verified
to be set to False
when connecting from a HTTPS proxy to an HTTP target. It was set to True
previously. (#3267)Note for downstream distributors: To run integration tests, you now need to run the tests a second time with the --integration
pytest flag. (#3181)
Read the v2 migration guide for help upgrading to the latest version of urllib3.
Cookie
header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via Retry.remove_headers_on_redirect
. (GHSA-v845-jxx5-vc9f)Cookie
header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via Retry.remove_headers_on_redirect
. (GHSA-v845-jxx5-vc9f)HTTPHeaderDict
(#2254)BaseHTTPResponse
to urllib3.__all__
(#3078)urllib3.connection.HTTPConnection
to raise the http.client.connect
audit event to have the same behavior as the standard library HTTP client (#2757)assert_hostname=False
to correctly skip hostname check. #3051