我是使用API的新手,所以请耐心等待。我已经搜索过这样的其他问题,但是没有遇到任何可以解决问题的解决方案。
使用Postman,我能够使用JSON发出一个Put请求,它工作正常。当我尝试在Python中使用相同的JSON主体时,我收到此错误:
{'code': 'E.Internal', 'error': 'An internal error has occurred processing your request. Please notify Customer Support for assistance.', 'status': 'error'}
该公司的客户支持不是很有帮助,所以我想看看这里是否有人可以帮助我。
这是我的脚本:
url = 'https://website.com/rest/site/' + record_id
json_body = (JSON body here, same one that works in Postman)
head = {'Accept':'application/json', 'Content-Type': 'application/json'}
response = requests.put(url, auth=(username, password), json=json_body, headers=head)
data = response.json()
print(data)
如果我将requests.put更改为requests.get并删除“auth =(用户名,密码)”之后的所有内容,它可以正常工作并返回记录的json,这样我就可以连接到API,只是没有放任何东西它与Python。同样,在Postman中基本上完全相同。
我究竟做错了什么以及如何输入数据?
根据请求文档,您没有正确填写put函数。试试这样吗?
import json
import requests
url = 'https://website.com/rest/site/' + record_id
headers = {
"Content-Type": "application/json",
'Accept':'application/json'
}
payload = json.dumps({
"data_goes_here": None
})
rv = requests.put(url, data=payload, headers=headers, verify=False)
if rv.status_code > 399:
rv.raise_for_status()
print(json.loads(rv.text))