]> git.ipfire.org Git - thirdparty/httpx.git/commitdiff
HTTPS proxies support (#2845)
authorKar Petrosyan <92274156+karosis88@users.noreply.github.com>
Mon, 11 Sep 2023 09:56:01 +0000 (05:56 -0400)
committerGitHub <noreply@github.com>
Mon, 11 Sep 2023 09:56:01 +0000 (10:56 +0100)
* Add ssl_context argument to Proxy class

* Changelog

CHANGELOG.md
httpx/_config.py
httpx/_transports/default.py

index 6fc53394a7c133d5678d93a16fed72317c1a53f3..5a6d927409b270b0334112ca80d7a2a874c2dddf 100644 (file)
@@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
 ### 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)
index f46a5bfe6ba6093688c7a91bd51de9d137840432..39d81a20a02ee5bdbcc923f4f168e77b23175d37 100644 (file)
@@ -326,6 +326,7 @@ class Proxy:
         self,
         url: URLTypes,
         *,
+        ssl_context: typing.Optional[ssl.SSLContext] = None,
         auth: typing.Optional[typing.Tuple[str, str]] = None,
         headers: typing.Optional[HeaderTypes] = None,
     ):
@@ -343,6 +344,7 @@ class Proxy:
         self.url = url
         self.auth = auth
         self.headers = headers
+        self.ssl_context = ssl_context
 
     @property
     def raw_auth(self) -> typing.Optional[typing.Tuple[bytes, bytes]]:
index 1aebd5c5a527fcf128acbc0643a4a7a728bef8c2..7dba5b8208a5129c930e74e30178f8b5b5e5aa6f 100644 (file)
@@ -156,6 +156,7 @@ class HTTPTransport(BaseTransport):
                 proxy_auth=proxy.raw_auth,
                 proxy_headers=proxy.headers.raw,
                 ssl_context=ssl_context,
+                proxy_ssl_context=proxy.ssl_context,
                 max_connections=limits.max_connections,
                 max_keepalive_connections=limits.max_keepalive_connections,
                 keepalive_expiry=limits.keepalive_expiry,