python3 请求使用引号而不是 quote_plus
python3 requests use quote instead of quote_plus
我使用 Python 3 和 requests module/library 来查询 REST 服务。
似乎请求默认使用 urllib.parse.quote_plus()
进行 urlencoding,即空格被转换为 +
。
然而,我查询的 REST 服务将其误解为 and
。所以我需要将空格编码为 %20
,即改用 urllib.parse.quote()
。
有没有简单的方法来处理请求?我在文档中找不到任何选项。
事实证明你可以!
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 here requote_uri
方法在页面的一半左右。
我使用 Python 3 和 requests module/library 来查询 REST 服务。
似乎请求默认使用 urllib.parse.quote_plus()
进行 urlencoding,即空格被转换为 +
。
然而,我查询的 REST 服务将其误解为 and
。所以我需要将空格编码为 %20
,即改用 urllib.parse.quote()
。
有没有简单的方法来处理请求?我在文档中找不到任何选项。
事实证明你可以!
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 here requote_uri
方法在页面的一半左右。