在 python 请求中使用标头和基本身份验证

时间:2021-03-18 10:06:43

标签: python python-requests basic-authentication

我有一个测试网址

开发者

为了访问 url 及其内容,必须将 headers 发送为

https://test.app.com/api/rest

并且还将使用基本身份验证,其中凭据是

headers={"Content-Type":"application/json"}

我用过

username=apple , password=ball

这是将 post 请求发送到同时发送标头和基本身份验证的 url 的正确方法吗?

2 个答案:

答案 0 :(得分:1)

总的来说:是的,看起来还可以。

但是一些注释/修复/提示:

  1. BasicAuth 可以只用作元组,所以 auth=(username, password) 就足够了 - docs say that BasicAuth is common that it they made it a shorthand

  2. 当你做任何请求时,你应该保存它的结果以了解它是否成功并诊断它。通常 r = requests.post(...) 就足够了。然后,您可以手动检查 r.status_code(并检查 r.content)或执行 r.raise_for_status() 以获取 4xx 和 5xx 代码的错误。

    r.raise_for_status() 将仅根据代码本身及其外观引发错误。但有时 r.content 可能会提供有关实际损坏的信息 - 例如“400 个错误的请求”,而响应的内容中可能缺少什么字段)。

  3. 至于 json 标头和 data=data... 另一个速记。 data= 要求您以希望直接发送的形式传递数据。但是 requests lib 知道很多时候我们想要发送 json 数据,因此他们实现了 json= 参数 - 它负责将您的 dict/list 结构转换为 json 并设置 {{ 1}} 标题也是如此!

所以在你的情况下:

content-type

答案 1 :(得分:1)

如果要发送json数据,只需将数据替换为json即可。其他字段没问题。