aio-libs / aiohttp

Asynchronous HTTP client/server framework for asyncio and Python
https://docs.aiohttp.org
Other
15.12k stars 2.02k forks source link

Bringing back support for declaring proxies at a init level in ClientSession(). #3222

Open GHXST01 opened 6 years ago

GHXST01 commented 6 years ago

Long story short

Currently only http proxies are supported and have to be declared at a request level. I'd like to see support for declaring proxies at the initialization level of ClientSession().

Third party libraries that add SOCKS support already have to do this because of needing a connector.

        self.c = SocksConnector.from_url('socks4://132.148.129.183:47617')
        self.s = aiohttp.ClientSession(connector=self.c)

This makes providing support for both HTTP proxies and SOCKS proxies really awkward.

Expected behaviour

I'd like to see native HTTP proxy deceleration in the same manner as is provided for SOCKS proxies by third party libraries.

Actual behaviour

Currently we have to declare HTTP proxies at a request level.

    def request(self, method, url, **kwargs):
        return self.s.request(method, url, **kwargs, proxy='http://192.168.178.45:8080')
asvetlov commented 6 years ago

Support for custom proxies is in my todo list. There is no estimation yet.