Python asyncio aiohttp请求数据编码

Python asyncio aiohttp request data encoding

我正在使用 python 的 aiohttp 基本请求模块来发出请求。我的请求是 base64 编码的字符串,请求正文如下所示:

body = {'request': 'eyJhYmMiOiJ4eXoifQ=='}

发送请求的代码如下:

response = yield from request(method='POST', url=url, allow_redirects=False, headers=headers, data=body)

这里的问题是,这是在另一端收到的:

{'request': 'eyJhYmMiOiJ4eXoifQ%3D%3D'}

我认为这是我的请求正文的 url-encoded 版本。

如何避免这种情况并按原样发送请求?

使用json参数。来自 documentation 的示例:

async with aiohttp.ClientSession() as session:
    async with session.post(url, json={'test': 'object'})

如果您要发送

,请从 header 中删除内容类型