gpt4 book ai didi

python - 在 python 查询参数中使用 %20 而不是 + 作为空格

转载 作者:IT老高 更新时间:2023-10-28 20:48:39 29 4
gpt4 key购买 nike

我编写了以下 python 脚本,使用 python 请求 (http://requests.readthedocs.org/en/latest/):

import requests

payload = {'key1': 'value 1', 'key2': 'value 2'}
headers = {'Content-Type': 'application/json;charset=UTF-8'}
r = requests.get("http://example.com/service", params=payload, headers=headers,
auth=("admin", "password"))

如果我查看服务器的访问日志,传入的请求是:/service?key1=value++1&key2=value+2

但是,服务器期望 ...value%20%201&...

我已经读到使用 + 作为空格的占位符是内容类型 application/x-www-form-urlencoded 的一部分,但显然我已经请求了 application/json。

有人知道如何在pythons请求的查询参数中使用%20作为空格吗?

最佳答案

为了跟进 @WeaselFox 的回答,他们引入了一个补丁,该补丁接受 urllib.parse.urlencodequote_via 关键字参数。现在你可以这样做了:

import requests
import urllib

payload = {'key1': 'value 1', 'key2': 'value 2'}
headers = {'Content-Type': 'application/json;charset=UTF-8'}
params = urllib.parse.urlencode(payload, quote_via=urllib.parse.quote)
r = requests.get("http://example.com/service", params=params, headers=headers,
auth=("admin", "password"))

关于python - 在 python 查询参数中使用 %20 而不是 + 作为空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21823965/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com