【问题标题】:API Call is working in POSTMAN but API call with generated code is not workingAPI 调用在 POSTMAN 中工作,但生成代码的 API 调用不起作用
【发布时间】:2021-09-13 03:19:56
【问题描述】:

API 调用在邮递员中工作,但是当我使用生成的代码时,它不工作

生成的代码:

import requests

url = "http://services.XXX.com/rest/v2/verification"

payload = "{\r\n  \"startDate\": \"2000-12-25\",\r\n  \"endDate\": \"2000-12-31\",\r\n  \"format\": \"CSV\"\r\n}"
headers = {
    'authorization': "Bearer XXXXX",
    'content-type': "application/json",
    'cache-control': "no-cache",
    'postman-token': "XXX"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

我也尝试在删除邮递员令牌后执行,但仍然出现以下错误:

{"message":"Internal Server Error: correlationId=V2-ee8fb1b098490b8665dd936e8472978b","type":"error","code":1}

【问题讨论】:

  • 试试这个payload = "{"startDate": "2000-12-25", "endDate": "2000-12-31", "format": "CSV}"
  • API 需要 json,但您没有发送 json。使用json=payload 而不是data=payload
  • 我已经尝试了这两个选项,但得到相同的错误

标签: python api rest postman


【解决方案1】:

requests中使用传递json数据时,可以传递字典而不是字符串。

你可以试试这个:

import requests
import json

url = "http://services.XXX.com/rest/v2/verification"

payload = "{\r\n  \"startDate\": \"2000-12-25\",\r\n  \"endDate\": \"2000-12-31\",\r\n  \"format\": \"CSV\"\r\n}"
headers = {
    'authorization': "Bearer XXXXX",
    'content-type': "application/json",
    'cache-control': "no-cache",
    'postman-token': "XXX"
    }

response = requests.post(url,json=json.loads(payload),headers=headers)

print(response.text)

【讨论】:

  • 我也试过了,但还是报同样的错误
【解决方案2】:

您可以通过这种方式将有效负载变量更改为 Json oblect:

代替:

payload = "{\r\n  \"startDate\": \"2000-12-25\",\r\n  \"endDate\": \"2000-12-31\",\r\n  \"format\": \"CSV\"\r\n}"

你可以使用:

payload = {"startDate": "2000-12-25", "endDate": "2000-12-31",  "format":"CSV"}

【讨论】:

  • 我也试过了,但还是报同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 2016-10-15
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
相关资源
最近更新 更多