# What changed in geventhttpclient

> 20 changes in geventhttpclient 2 from its official release notes, upgrade guides and advisories: 9 breaking, 2 deprecations, 2 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/pypi/geventhttpclient/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## geventhttpclient 2

### Breaking changes

- check_hostname now defaults to True. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- The minimum required gevent version is now 25.9, the first release with wheels for Python 3.11–3.14. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Header field names and values are now str instead of bytes. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Headers.iget() has been removed. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Headers.iteroriginal() has been removed. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Multi-value headers now send one field line per element. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- The oauth2 extra has been removed. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Redirect behavior was updated for HTTP conformance to RFC 9110, 3986, and 2965. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Retries after a transmission error are now limited to idempotent methods. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)

### Deprecations

- cert_file is deprecated in favour of a custom SSL context. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- key_file is deprecated in favour of a custom SSL context. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)

### New APIs and options

- BasicAuth is now available as a first-class authentication feature. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- An httpx-compatible drop-in surface is now available. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)

### Behavior and default changes

- Request-head validation was updated as part of HTTP conformance work. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- The response surface is now requests-compatible. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)

### Fixes and other changes

- Python 3.15 is explicitly supported, with cp315 wheels built and shipped alongside wheels for Python 3.11–3.14. (2.6.1) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.1)
- Empty responses through the httplib shim are fixed. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Semicolon path parameters are preserved in requests and redirects. (2.6.0) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.6.0)
- Requests with body=None are now treated as having no body, avoiding chunked transfer and a keep-alive delay caused by a separate terminating write. (2.5.1) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.5.1)
- An explicitly requested chunked request with an empty body is sent with the request headers in a single sendall(), avoiding a Nagle stall. (2.5.1) — [release notes](https://github.com/geventhttpclient/geventhttpclient/releases/tag/2.5.1)
