我有一个测试网址
开发者
为了访问 url 及其内容,必须将 headers 发送为
https://test.app.com/api/rest
并且还将使用基本身份验证,其中凭据是
headers={"Content-Type":"application/json"}
我用过
username=apple , password=ball
这是将 post 请求发送到同时发送标头和基本身份验证的 url 的正确方法吗?
答案 0 :(得分:1)
总的来说:是的,看起来还可以。
但是一些注释/修复/提示:
BasicAuth 可以只用作元组,所以 auth=(username, password)
就足够了 - docs say that BasicAuth is common that it they made it a shorthand
当你做任何请求时,你应该保存它的结果以了解它是否成功并诊断它。通常 r = requests.post(...)
就足够了。然后,您可以手动检查 r.status_code
(并检查 r.content
)或执行 r.raise_for_status()
以获取 4xx 和 5xx 代码的错误。
r.raise_for_status()
将仅根据代码本身及其外观引发错误。但有时 r.content
可能会提供有关实际损坏的信息 - 例如“400 个错误的请求”,而响应的内容中可能缺少什么字段)。
至于 json 标头和 data=data
... 另一个速记。 data=
要求您以希望直接发送的形式传递数据。但是 requests
lib 知道很多时候我们想要发送 json 数据,因此他们实现了 json=
参数 - 它负责将您的 dict/list 结构转换为 json 并设置 {{ 1}} 标题也是如此!
所以在你的情况下:
content-type
答案 1 :(得分:1)
如果要发送json数据,只需将数据替换为json即可。其他字段没问题。