Python POST 请求返回 401

标签 python post python-requests

发送 post 请求时返回 401 错误。设置中是否有任何内容可能导致该错误。这是代码:

import requests


>>>url= 'https://us-street.api.smartystreets.com/street-address'
>>>payload = {'auth-id':'xxxxxx','auth-token':'xxxxx'}
>>>body = [{"street":"1 Santa Claus","city":"North Pole","state":"AK","candidates":10},{"addressee":"Apple Inc","street":"1 infinite loop","city":"cupertino","state":"CA","zipcode":"95014","candidates":10}]
>>>headers = {'Content-Type':'application/json; charset=utf-8', 'Host':'us-street.api.smartystreets.com'}
>>>r = request.post(url, data=payload, json=body, headers=headers)
>>>r.status_code
401
>>>r.url
https://us-street.api.smartystreets.com/street-address

如有任何帮助,我们将不胜感激。 API文档链接: https://smartystreets.com/docs/cloud/us-street-api

最佳答案

根据文档,您的身份验证凭据应位于 URL 的查询字符串中,而不是正文中。因此,请使用 params=payload 而不是 data=payload

基本上,由于 API 在正确的位置找不到您的身份验证凭据,因此它假设您没有经过身份验证/登录,因此会出现 401 状态代码。

关于Python POST 请求返回 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63755684/

相关文章:

php - 使用 $_POST 变量时 MySQL 查询不工作

php - 通过 AJAX 发送特殊字符( "&lt"、 "&gt"、 "&amp")

python - 如何使用Python请求模块和TeamCity API来触发构建?

django - 收到 InvalidClientIdError (invalid_request) 不匹配的重定向 URI。使用 requests_oauthlib

python - 客户端未收到 Flask 应用响应

python - 所有python框架的通用传入文件上传http请求对象

python - Celery Worker 中的多线程

java - Android Java Http Post 到 PHP 服务器始终为 NULL?

Python 数据集中值的总和

python - 如何将不同行的值分配给新列