Python requests session post to aiohttp session post

Viewed 327

I have a synchronous code with requests that I am trying to move to using aiohttp.ClientSession. Indeed, I have a class in which I set a aiohttp.ClientSession with various headers, among those an API key. The above code works for requesting data: (I deleted the init.... everything works but this function)

class Client():
    def __init__(self):
        loop = asyncio.get_event_loop()
        self.session = aiohttp.ClientSession(
            loop=loop,
            headers=self.get_headers()
        )

    def send_signed_request(self, url_path, payload={}):
        session = requests.session()
        session.headers.update(self._get_headers())
        query_string = urlencode(payload)
        url = url_path + '?' + query_string
        params = {'url': url, 'params': {}}
        response = session.post(**params)
        return response.json()

client = Client()
results = client.send_signed_request(url, params)

From that, with the requests session, I obtain a valid response from the server.

for some reason, the code below, with aiohttp session does not work and I have no idea how to adapt it.

async def send_signed_request(self, url_path, payload={}):
    query_string = urlencode(payload)
    url = url_path + '?' + query_string
    params = {'url': url, 'data': {}}
    async with self.session.post(**params) as response:
        return await response.json()

does anybody knows my error please?

0 Answers
Related