gpt4 book ai didi

python - 使用 chalice 时无法访问请求json_body

转载 作者:行者123 更新时间:2023-12-02 13:45:06 24 4
gpt4 key购买 nike

我试图向使用AWS软件包Chalice的python api发出curl请求。

当我尝试访问app.current_request.json_body时,将引发JSON Parse错误。无法弄清楚为什么会这样。据我所知,我的JSON格式正确。

这是curl请求:

(echo -n '{"data": "test"}') |
curl -H "Content-Type: application/json" -d @- $URL

这是python Chalice代码:
app = Chalice(app_name='predictor')

@app.route('/', methods=['POST'], content_types=['application/json'])
def index():
try:
body = app.current_request.json_body
except Exception as e:
return {'error': str(e)}

当我使用上述 curl请求调用路由时,出现以下错误:
{"error": "BadRequestError: Error Parsing JSON"}
注意:当我从 .json_body中删除 app.current_request时。我不再收到错误。

有什么想法吗?

最佳答案

documentation确实表明问题是内容类型:

The default behavior of a view function supports a request body of application/json. When a request is made with a Content-Type of application/json, the app.current_request.json_body attribute is automatically set for you. This value is the parsed JSON body.

You can also configure a view function to support other content types. You can do this by specifying the content_types parameter value to your app.route function. This parameter is a list of acceptable content types.


这表明更改Content-Type可能会使json_body工作,但是我没有成功。
但是,使用 app.current_request.raw_body.decode()代替 app.current_request.json_body可以解决此问题。

关于python - 使用 chalice 时无法访问请求json_body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52789943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com