Python:使用请求的POST中的错误请求
我应该寄这个:Python:使用请求的POST中的错误请求,python,http,Python,Http,我应该寄这个: curl--header“Content Type:text/plain”--请求POST--data“ON”example.com/rest/items/z12 相反,我发送的是: import requests headers = {"Content-Type": "text/plain"} url = 'http://example.com/rest/items/z12' _dict = {"ON": ""} res = requests.post(url, auth=('
curl--header“Content Type:text/plain”--请求POST--data“ON”example.com/rest/items/z12
相反,我发送的是:
import requests
headers = {"Content-Type": "text/plain"}
url = 'http://example.com/rest/items/z12'
_dict = {"ON": ""}
res = requests.post(url, auth=('demo', 'demo'), params=_dict, headers=headers)
我得到一个错误400(错误请求?)
我做错了什么?帖子主体设置为ON
;使用数据参数:
import requests
headers = {"Content-Type": "text/plain"}
url = 'http://example.com/rest/items/z12'
res = requests.post(url, auth=('demo', 'demo'), data="ON", headers=headers)
params
参数用于URL查询参数,通过使用字典,您要求请求将其编码为表单编码;因此?ON=
被添加到URL中
见:
(HTTP)将POST请求中的指定数据发送到HTTP服务器,其方式与浏览器在用户填写HTML表单并按下提交按钮时的方式相同
及
数据–(可选)要在请求
正文中发送的字典、字节或类似文件的对象
帖子主体设置为
上的;使用数据参数:
import requests
headers = {"Content-Type": "text/plain"}
url = 'http://example.com/rest/items/z12'
res = requests.post(url, auth=('demo', 'demo'), data="ON", headers=headers)
params
参数用于URL查询参数,通过使用字典,您要求请求将其编码为表单编码;因此?ON=
被添加到URL中
见:
(HTTP)将POST请求中的指定数据发送到HTTP服务器,其方式与浏览器在用户填写HTML表单并按下提交按钮时的方式相同
及
数据–(可选)要在请求
正文中发送的字典、字节或类似文件的对象
requests.post
方法中的params
参数用于将GET参数添加到URL。所以你在做这样的事情:
curl --header "Content-Type: text/plain" --request POST example.com/rest/items/z12?ON=
您应该改为使用数据
参数
import requests
headers = {"Content-Type": "text/plain"}
url = 'http://example.com/rest/items/z12'
res = requests.post(url, auth=('demo', 'demo'), data="ON", headers=headers)
此外,如果您为数据参数指定一个术语,它将以“application/x-www-form-urlencoded”的形式发送有效负载。在curl命令中,发送原始字符串作为有效负载。这就是为什么我稍微更改了您的示例。请求中的参数。post
方法用于将GET参数添加到URL。所以你在做这样的事情:
curl --header "Content-Type: text/plain" --request POST example.com/rest/items/z12?ON=
您应该改为使用数据
参数
import requests
headers = {"Content-Type": "text/plain"}
url = 'http://example.com/rest/items/z12'
res = requests.post(url, auth=('demo', 'demo'), data="ON", headers=headers)
此外,如果您为数据参数指定一个术语,它将以“application/x-www-form-urlencoded”的形式发送有效负载。在curl命令中,发送原始字符串作为有效负载。这就是为什么我对你的例子做了一些修改。非常感谢。成功了!我已经阅读了手册,其中()没有特别提到我必须使用“数据”才能在文章正文中添加额外的数据。同样,通过阅读curl
手册页,它表明--data用于发送请求参数。这就是为什么我选择使用params
@xpanta:right。我不确定curl在哪里声明这些是参数;我看到的文档中的第一句确实提到了POST请求。诚然,这确实需要一些关于HTTP POST如何正常工作的知识。:-)谢谢。成功了!我已经阅读了手册,其中()没有特别提到我必须使用“数据”才能在文章正文中添加额外的数据。同样,通过阅读curl
手册页,它表明--data用于发送请求参数。这就是为什么我选择使用params
@xpanta:right。我不确定curl在哪里声明这些是参数;我看到的文档中的第一句确实提到了POST请求。诚然,这确实需要一些关于HTTP POST如何正常工作的知识。:-)