首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python请求应用程序/x-www-form-urlencoded非json主体

Python请求应用程序/x-www-form-urlencoded非json主体
EN

Stack Overflow用户
提问于 2022-03-31 19:49:25
回答 1查看 2.1K关注 0票数 1

我试图使用python请求访问API端点。除了使用cURL之外,我无法成功地发送请求正文。下面是成功的cURL命令:

代码语言:javascript
运行
复制
curl --location --request POST '<api endpoint url>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'obj={"login":"<email>","pword":"<password>"}'

使用像这样的python请求会从API返回一个错误,因为请求的主体是:

代码语言:javascript
运行
复制
payload = 'obj={"login":"<email>","pword":"<password>"}'
headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.post(url, headers=headers, data=payload)
print(response.text)

我也尝试了requests.request("POST"),但得到了同样的结果。

EN

回答 1

Stack Overflow用户

发布于 2022-03-31 20:00:37

您的数据是URL编码的,正如您在curl内容类型标头中看到的那样,所以您必须以URL编码格式而不是JSON格式提供数据。

请使用下面的选项。requests将自动将内容类型标头设置为application/x-www-form-urlencoded。它还将负责URL编码

代码语言:javascript
运行
复制
data = {"login": "<email>", "pword": "<password>"}
response = requests.post(url, data=data)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71698390

复制
相关文章

相似问题

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