在Python中放置API请求返回错误

问题描述 投票:0回答:1

我是使用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中基本上完全相同。

我究竟做错了什么以及如何输入数据?

python json rest
1个回答
1
投票

根据请求文档,您没有正确填写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))
© www.soinside.com 2019 - 2024. All rights reserved.