我使用Python 3和requests模块/库来查询REST服务。似乎请求默认使用urllib.parse.quote_plus()进行url编码,即空格转换为+。然而,我查询的REST服务将其误解为and。所以我需要将空格编码为%20,即使用urllib.parse.quote()代替。有没有简单的方法来处理请求?我在文档中找不到任何选项。
urllib.parse.quote_plus()
+
and
%20
urllib.parse.quote()
ldioqlga1#
事实证明你可以!
from requests.utils import requote_uri url = "https://www.somerandom.com/?name=Something Cool" requote_uri(url) 'https://www.somerandom.com/?name=Something%20Cool'
documentation hererequote_uri方法大约在页面的中间。
requote_uri
gzszwxb42#
了解背景添加一个别名到你的.aliases文件:
alias urlencode='$(which python3) -c "import sys; from requests.utils import requote_uri; print(requote_uri(sys.argv[1]));"'
然后:
source .aliases && urlencode "https://www.somerandom.com/?name=Something Cool"
2条答案
按热度按时间ldioqlga1#
事实证明你可以!
documentation here
requote_uri
方法大约在页面的中间。gzszwxb42#
了解背景
添加一个别名到你的.aliases文件:
然后: