我正在尝试创建异步GET函数,但是当url包含unicode(我使用了韩文字母)字符串时,它就会发生400 Bad Request。当我使用请求时没有问题,但是只有aiohttp给出了一个错误。我该如何处理这个问题?
请求
import requests
def get():
response = requests.get("some url with unicode")
return response
get() # 200 OKaiohttp
import asyncio
import aiohttp
async def get():
response = await aiohttp.request("GET", "some url with unicode")
return response
loop = asyncio.get_event_loop()
loop.run_until_complete(get()) # 400 Bad Request我用的是Python 3.6,asyncio 3.4.3,aiohttp 1.0.5。
发布于 2019-03-06 08:53:45
我自己找到了解决办法。
from urllib import parse
url = "some url with unicode"
parsed = parse.urlparse(url)
parsed = parse.parse_qs(parsed.query)
encoded = parse.urlencode(parsed, doseq=True)
url = "{}?{}".format("url base without parameters", encoded)然后url被编码为ascii字符串,我得到了200 OK。谢谢你的评论:)
https://stackoverflow.com/questions/55018484
复制相似问题