【发布时间】:2017-11-07 14:48:32
【问题描述】:
对于我的一个发布请求,我每次尝试运行它时都会收到 500 响应。当我在邮递员中复制并粘贴详细信息时,每次都可以正常工作。 python 帖子适用于我运行的其他请求,但这个每次都失败,我不知道为什么。
以前有没有人遇到过这个问题,或者任何人都可以看到我做错了什么?
json_body = '{"overrides": [], "id": 0, "name": "Rate Sheet 12", "resellerId": 2000001, "currency": "ZAR", "markup": {"id": 0, "method": "Percentage", "operand": 3}, "totalLinkedBands": 0, "totalLinkedAccounts": 0}'
token = 'JWT eyJ0eXA...s'
url = 'http://app01:8084//PriceScheme/CreatePriceScheme'
r = requests.post(url, json.loads(json_body), headers={'Authorization': token})
在 Postman 中如下所示:
(POST) http://app01:8084//PriceScheme/CreatePriceScheme
Content-Type - application/json
Authorization - JWT eyJ...
{"overrides": [], "name": "Rate Sheet 1", "currency": "ZAR", "totalLinkedAccounts": 0, "totalLinkedBands": 1, "id": 1, "markup": {"method": "Percentage", "operand": 3.0, "id": 0}, "resellerId": "2009340"}
【问题讨论】:
-
在您的问题中包含邮递员代码
-
出于兴趣 - 端口号后面的双“/”。是不是打错字了?
-
500 是内部服务器错误。您为 Python 和 Postman 提供的示例没有相同的有效负载(例如
id不一样),这可能是一个工作而另一个不工作的原因。请使用完全相同的请求对其进行测试并更新问题。此外,如果您有权访问网络服务器日志,您应该会看到出了什么问题,因为这是一个内部服务器错误。 -
在一种情况下,“操作数”是 3.0,在另一种情况下,可能是服务器端解析问题?
-
postman 的工作方式与
request.post不同,postman 处理负载的方式与 API 命中之前的request不同。通过request传递时,将json_body分配为纯json 而不是单引号。这将由于解析问题而发生。此外,在您的 API 中,添加pdb并检查调用是否到达view或者它在apache/nginx级别本身中断!