2

我想确认/看看是否有更好的方法向为 AWS Lambda 生成的 API 端点发出发布请求?只是我试图在不使用子进程调用的情况下优化这个 curl。使用此代码,我得到错误状态代码 400。

我正在尝试优化的代码

$ curl -X POST -d @test.json -H "x-api-key: {API_KEY}" {URL}

我创建的 Python 脚本:

import requests

URL = "some_url"
API_KEY = "some_api_key"

headers = {'x-api-key': API_KEY}
r = requests.post(URL, headers=headers, json=test.json)
print(r.status_code)
print(r.json())

错误信息

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
4

1 回答 1

0

JSON 需要在发布请求之前正确加载。

import requests
import json

URL = "some_url"
API_KEY = "some_api_key"
headers = {'x-api-key': API_KEY}

with open("test.json") as f:
    data = json.load(f)

r = requests.post(URL, headers=headers, json=data)
print(r.status_code)
print(r.json())

这给出了 200 的状态代码和正确的 JSON 响应。

于 2019-07-18T15:10:53.053 回答