Skip to content

Commit

Permalink
HTTP/2 support for tunnelled proxy cases. (#2009)
Browse files Browse the repository at this point in the history
* Cap upload chunk sizes

* Use '.read' for file streaming, where possible

* Direct iteration should not apply chunk sizes

* HTTP/2 support for proxies
  • Loading branch information
tomchristie committed Jan 5, 2022
1 parent 9d54375 commit 4067003
Showing 1 changed file with 30 additions and 13 deletions.
43 changes: 30 additions & 13 deletions httpx/_transports/default.py
Expand Up @@ -138,19 +138,36 @@ def __init__(
retries=retries,
)
else:
self._pool = httpcore.HTTPProxy(
proxy_url=httpcore.URL(
scheme=proxy.url.raw_scheme,
host=proxy.url.raw_host,
port=proxy.url.port,
target=proxy.url.raw_path,
),
proxy_headers=proxy.headers.raw,
ssl_context=ssl_context,
max_connections=limits.max_connections,
max_keepalive_connections=limits.max_keepalive_connections,
keepalive_expiry=limits.keepalive_expiry,
)
try:
self._pool = httpcore.HTTPProxy(
proxy_url=httpcore.URL(
scheme=proxy.url.raw_scheme,
host=proxy.url.raw_host,
port=proxy.url.port,
target=proxy.url.raw_path,
),
proxy_headers=proxy.headers.raw,
ssl_context=ssl_context,
max_connections=limits.max_connections,
max_keepalive_connections=limits.max_keepalive_connections,
keepalive_expiry=limits.keepalive_expiry,
http1=http1,
http2=http2,
)
except TypeError: # pragma: nocover
self._pool = httpcore.HTTPProxy(
proxy_url=httpcore.URL(
scheme=proxy.url.raw_scheme,
host=proxy.url.raw_host,
port=proxy.url.port,
target=proxy.url.raw_path,
),
proxy_headers=proxy.headers.raw,
ssl_context=ssl_context,
max_connections=limits.max_connections,
max_keepalive_connections=limits.max_keepalive_connections,
keepalive_expiry=limits.keepalive_expiry,
)

def __enter__(self: T) -> T: # Use generics for subclass support.
self._pool.__enter__()
Expand Down

0 comments on commit 4067003

Please sign in to comment.