【发布时间】:2020-03-11 22:52:09
【问题描述】:
我正在向 API 发出请求,我正在使用基本授权,但由于某种原因 API 无法解码授权字符串
这是我正在使用的代码:
import base64,requests
from base64 import b64encode
url = 'api.sample/test'
APIuser = b'generic_user'
APIpass = b'generic_pass'
myobj = {"data1_field":"data1"}
data_string = APIuser + b":" + APIpass
data_bytes = b64encode(data_string).decode('ascii')
head = {'Content-Type':'application/json', 'Accept':'*/*','Authorization':'Basic ' + data_bytes}
x = requests.post(url, headers=head,
data = myobj)
print(x.text)
这是我得到的错误:
{
"error": {
"detail": "Cannot decode: java.io.StringReader@45fab9",
"message": "Exception while reading request"
},
"status": "failure"
}
对我做错了什么有任何想法吗?
【问题讨论】:
-
更新我在这篇文章中找到了修复,stackoverflow.com/questions/57289682/…。我没有收到 java 错误,但现在我收到一个错误,我无法在 API 中进行身份验证,并且密钥正在正确打印
-
我想我找到了根本原因,但我不知道如何解决它:API 要求将数据发送到 base64 编码,而我发送的数据是一个字符串。想法?
标签: python python-3.x rest python-requests encode