在python请求中使用头和基本身份验证
我有一个测试url在python请求中使用头和基本身份验证,python,python-requests,basic-authentication,Python,Python Requests,Basic Authentication,我有一个测试url https://test.app.com/api/rest 为了访问url及其内容,有必要将标题发送为 headers={"Content-Type":"application/json"} 并且还将使用基本身份验证,其中凭据是 username=apple , password=ball 我用过 from requests.auth import HTTPBasicAuth requests.post(URL,auth=HTT
https://test.app.com/api/rest
为了访问url及其内容,有必要将标题发送为
headers={"Content-Type":"application/json"}
并且还将使用基本身份验证,其中凭据是
username=apple , password=ball
我用过
from requests.auth import HTTPBasicAuth
requests.post(URL,auth=HTTPBasicAuth(username, password),
data=data,
headers=headers)
这是向url发送post请求的正确方法吗?同时发送标题和基本身份验证?一般来说:是的,似乎还可以 但一些注意事项/修复/提示:
auth=(用户名、密码)
就足够了-
r=requests.post(…)
就足够了。然后,您可以手动检查r.status\u code
(并检查r.content
)或执行r.raise\u for_status()
,只获取4xx和5xx代码的错误
r.raise\u for_status()
将仅根据代码本身和看起来的内容引发错误。但有时r.content
可能会提供实际发生故障的信息,例如“400错误请求”,而响应可能会在其内容中包含缺少的字段)
data=data
。。。另一个速记<代码>数据=要求您以希望直接发送的形式传递数据。但是requests
lib知道很多时候我们想要发送json数据,所以他们实现了一个json=
参数-它负责将dict/list结构转换为json,并设置内容类型
标题
data={“示例”:“数据”}
r=requests.post(URL,#保存结果以供以后检查
auth=(用户名、密码),#您可以在不使用构造函数的情况下传递它
json=data)#无需手动添加json.dumps或头文件!
如果希望发送json数据,只需将数据替换为json即可。其他字段也可以。看起来不错,运行良好吗?确保数据作为json字符串传递:data=json.dumps(data)