首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过aiohttp url传递unicode

通过aiohttp url传递unicode
EN

Stack Overflow用户
提问于 2019-03-06 08:21:04
回答 1查看 482关注 0票数 1

我正在尝试创建异步GET函数,但是当url包含unicode(我使用了韩文字母)字符串时,它就会发生400 Bad Request。当我使用请求时没有问题,但是只有aiohttp给出了一个错误。我该如何处理这个问题?

请求

代码语言:javascript
复制
import requests

def get():
    response = requests.get("some url with unicode")
    return response

get()    # 200 OK

aiohttp

代码语言:javascript
复制
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.6asyncio 3.4.3aiohttp 1.0.5

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 08:53:45

我自己找到了解决办法。

代码语言:javascript
复制
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。谢谢你的评论:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55018484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档