diff --git a/CHANGES/3751.feature b/CHANGES/3751.feature new file mode 100644 index 00000000000..50c32149bb1 --- /dev/null +++ b/CHANGES/3751.feature @@ -0,0 +1 @@ +Added ``auto_decompress`` parameter to ``ClientSession.request`` to override ``ClientSession._auto_decompress``. -- by :user:`Daste745` diff --git a/aiohttp/client.py b/aiohttp/client.py index b8c0e429495..c40745771cb 100644 --- a/aiohttp/client.py +++ b/aiohttp/client.py @@ -351,6 +351,7 @@ async def _request( proxy_headers: Optional[LooseHeaders] = None, trace_request_ctx: Optional[SimpleNamespace] = None, read_bufsize: Optional[int] = None, + auto_decompress: Optional[bool] = None, ) -> ClientResponse: # NOTE: timeout clamps existing connect and read timeouts. We cannot @@ -411,6 +412,9 @@ async def _request( if read_bufsize is None: read_bufsize = self._read_bufsize + if auto_decompress is None: + auto_decompress = self._auto_decompress + traces = [ Trace( self, @@ -512,7 +516,7 @@ async def _request( timer=timer, skip_payload=method.upper() == "HEAD", read_until_eof=read_until_eof, - auto_decompress=self._auto_decompress, + auto_decompress=auto_decompress, read_timeout=real_timeout.sock_read, read_bufsize=read_bufsize, timeout_ceil_threshold=self._connector._timeout_ceil_threshold, diff --git a/docs/client_reference.rst b/docs/client_reference.rst index 5c28f4d0d3a..2aec76a7b2f 100644 --- a/docs/client_reference.rst +++ b/docs/client_reference.rst @@ -164,8 +164,7 @@ The client session supports the context manager protocol for self closing. connection pool between sessions without sharing session state: cookies etc. - :param bool auto_decompress: Automatically decompress response body, - ``True`` by default + :param bool auto_decompress: Automatically decompress response body (``True`` by default). .. versionadded:: 2.3 @@ -338,7 +337,8 @@ The client session supports the context manager protocol for self closing. proxy=None, proxy_auth=None,\ timeout=sentinel, ssl=None, \ verify_ssl=None, fingerprint=None, \ - ssl_context=None, proxy_headers=None) + ssl_context=None, proxy_headers=None, \ + auto_decompress=None) :async-with: :coroutine: :noindexentry: @@ -510,6 +510,10 @@ The client session supports the context manager protocol for self closing. .. versionadded:: 3.0 + :param bool auto_decompress: Automatically decompress response body. + Overrides :attr:`ClientSession.auto_decompress`. + May be used to disable auto decompression on a per-request basis. + :return ClientResponse: a :class:`client response ` object.