Httpx Versions Save

A next generation HTTP client for Python. 🦋

0.27.0

2 months ago

0.27.0 (21st February, 2024)

Deprecated

  • The app=... shortcut has been deprecated. Use the explicit style of transport=httpx.WSGITransport() or transport=httpx.ASGITransport() instead.

Fixed

  • Respect the http1 argument while configuring proxy transports. (#3023)
  • Fix RFC 2069 mode digest authentication. (#3045)

0.26.0

4 months ago

0.26.0 (20th December, 2023)

Added

  • The proxy argument was added. You should use the proxy argument instead of the deprecated proxies, or use mounts= for more complex configurations. (#2879)

Deprecated

  • The proxies argument is now deprecated. It will still continue to work, but it will be removed in the future. (#2879)

Fixed

  • Fix cases of double escaping of URL path components. Allow / as a safe character in the query portion. (#2990)
  • Handle NO_PROXY envvar cases when a fully qualified URL is supplied as the value. (#2741)
  • Allow URLs where username or password contains unescaped '@'. (#2986)
  • Ensure ASGI raw_path does not include URL query component. (#2999)
  • Ensure Response.iter_text() cannot yield empty strings. (#2998)

0.25.2

5 months ago

0.25.2 (24th November, 2023)

Added

  • Add missing type hints to few __init__() methods. (#2938)

0.25.1

6 months ago

0.25.1 (3rd November, 2023)

  • Add support for Python 3.12. (#2854)
  • Add support for httpcore 1.0 (#2885)

Fixed

  • Raise ValueError on Response.encoding being set after Response.text has been accessed. (#2852)

0.25.0

7 months ago

0.25.0 (11th Sep, 2023)

Removed

  • Drop support for Python 3.7. (#2813)

Added

  • Support HTTPS proxies. (#2845)
  • Change the type of Extensions from Mapping[Str, Any] to MutableMapping[Str, Any]. (#2803)
  • Add socket_options argument to httpx.HTTPTransport and httpx.AsyncHTTPTransport classes. (#2716)
  • The Response.raise_for_status() method now returns the response instance. For example: data = httpx.get('...').raise_for_status().json(). (#2776)

Fixed

  • Return 500 error response instead of exceptions when raise_app_exceptions=False is set on ASGITransport. (#2669)
  • Ensure all WSGITransport environs have a SERVER_PROTOCOL. (#2708)
  • Always encode forward slashes as %2F in query parameters (#2723)
  • Use Mozilla documentation instead of httpstatuses.com for HTTP error reference (#2768)

0.24.1

11 months ago

0.24.1 (17th May, 2023)

Added

  • Provide additional context in some InvalidURL exceptions. (#2675)

Fixed

  • Fix optional percent-encoding behaviour. (#2671)
  • More robust checking for opening upload files in binary mode. (#2630)
  • Properly support IP addresses in NO_PROXY environment variable. (#2659)
  • Set default file for NetRCAuth() to None to use the stdlib default. (#2667)
  • Set logging request lines to INFO level for async requests, in line with sync requests. (#2656)
  • Fix which gen-delims need to be escaped for path/query/fragment components in URL. (#2701)

0.24.0

1 year ago

0.24.0 (6th April, 2023)

Changed

  • The logging behaviour has been change to be more in-line with other standard Python logging usages. We no longer have a custom TRACE log level, and we no longer use the HTTPX_LOG_LEVEL environment variable to auto-configure logging. We now have a significant amount of DEBUG logging available at the network level. Full documentation is available at https://www.python-httpx.org/logging/ (#2547, encode/httpcore#648)
  • The Response.iter_lines() method now matches the stdlib behaviour and does not include the newline characters. It also resolves a performance issue. (#2423)
  • Query parameter encoding switches from using + for spaces and %2F for forward slash, to instead using %20 for spaces and treating forward slash as a safe, unescaped character. This differs from requests, but is in line with browser behavior in Chrome, Safari, and Firefox. Both options are RFC valid. (#2543)
  • NetRC authentication is no longer automatically handled, but is instead supported by an explicit httpx.NetRCAuth() authentication class. See the documentation at https://www.python-httpx.org/advanced/#netrc-support (#2525)

Removed

  • The rfc3986 dependancy has been removed. (#2252)

0.23.3

1 year ago

0.23.3 (4th Jan, 2023)

Fixed

  • Version 0.23.2 accidentally included stricter type checking on query parameters. This shouldn've have been included in a minor version bump, and is now reverted. (#2523, #2539)

0.23.2

1 year ago

0.23.2 (2nd Jan, 2023)

Added

  • Support digest auth nonce counting to avoid multiple auth requests. (#2463)

Fixed

  • Multipart file uploads where the file length cannot be determine now use chunked transfer encoding, rather than loading the entire file into memory in order to determine the Content-Length. (#2382)
  • Raise TypeError if content is passed a dict-instance. (#2495)
  • Partially revert the API breaking change in 0.23.1, which removed RawURL. We continue to expose a url.raw property which is now a plain named-tuple. This API is still expected to be deprecated, but we will do so with a major version bump. (#2481)

0.23.1

1 year ago

0.23.1

Added

  • Support for Python 3.11. (#2420)
  • Allow setting an explicit multipart boundary in Content-Type header. (#2278)
  • Allow tuple or list for multipart values, not just list. (#2355)
  • Allow str content for multipart upload files. (#2400)
  • Support connection upgrades. See https://www.encode.io/httpcore/extensions/#upgrade-requests

Fixed

  • Don't drop empty query parameters. (#2354)

Removed

  • Drop .read/.aread from SyncByteStream/AsyncByteStream (#2407)
  • Drop RawURL. (#2241)