FLASK PUT Curl 命令:{"message": "未尝试加载 JSON 数据,因为请求内容类型不是 'application/json'。"}

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

我正在关注此视频:https://www.youtube.com/watch?v=xqJXDZvtogY

一切正常,直到我为 PUT 请求编写curl 命令。我的命令提示符中显示以下错误: “未尝试加载 JSON 数据,因为请求内容类型不是“application/json”。”

我的Python文件App.py是:

from flask import Flask
from flask_restful import Resource, Api, reqparse

app = Flask("VideoAPI")
api = Api(app)

parser = reqparse.RequestParser()
parser.add_argument('title', required=True)


videos = {
    'video1' : {'title':'Hello world in python'},
    'video2' : {'title':'Why R is good'}
}

class Video(Resource):
    def get(self, video_id):
        if video_id=="all":
            return videos 
        return videos[video_id]
    
    def put(self, video_id):
        args = parser.parse_args()
        new_video = {'title': args['title']}
        videos[video_id] = new_video
        return {video_id: videos[video_id]}, 201

api.add_resource(Video, '/videos/<video_id>')

if __name__=='__main__':
    app.run()

我的curl命令:curl http://localhost:5000/videos/video3 -d“title”=“我的新视频”-X PUT

我的版本:Werkzeug/3.0.1 Python/3.12.1

经过研究和尝试解决后,有人建议curl命令并不完美并且与软件包配合得很好,所以我尝试了以下curl命令,它们也导致了错误。

  1. curl -i -X -PUT -H“内容类型:application/json”-d'{“title”:“MyNew Video”}'http://localhost:5000/videos/video3 错误:405 不允许使用方法

可能是什么问题?

python json http flask curl
1个回答
0
投票

经过大量实验:对我有用的curl命令是:>curl http://localhost:5000/videos/video3 -d "{"title":"titlename"}" -H "Content-Type:application /json"-X PUT

© www.soinside.com 2019 - 2024. All rights reserved.