Skip to content

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

Description

@synchronizing

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:

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:

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!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions