aio-libs / aio-libs/aiohttp

Retrieving raw response (status + headers + body) data from ClientResponse?

Open
#3,877 8 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
16.5k
Forks
2.4k
Avg merge
20h 10m
Merged PRs (30d)
221

Description

I was wondering if there is a way to effectively get the entire raw response from a `ClientResponse` class. Take the following code for example:

```python
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
status = response.status
header = response.raw_headers
resp = await response.read()
```

What I am trying to effectively do is get the _complete_ and _raw_ return from the server -- the status, header, and the response in one. I have checked out the docs, and I see there is no mention for raw complete data, only portions; status, header, and body.

Now, I did think of simply reformatting `status` and `header`, and then adding them to the `resp`, but this seems a bit backward as I would be doing something that `aiohttp` certainly does the opposite of in the background -- which is why I am coming here asking for guidance. Something like so would be a lifesaver:

```python
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
resp = await response.read_raw() # or response.raw() or response.all(), any variation really.
```

Thank you in advance, and any guidance would be appreciated!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.