json flask 不接受形式

cclgggtu  于 2023-05-02  发布在  其他
关注(0)|答案(1)|浏览(136)

我尝试从Python向flask应用程序发送一个简单的表单,请求如下:

r = requests.post('http://x.x.x.x/Files',data = {
                    'FileName': filename, 
                    'Mode' : 'Add'  
                })

flask app是这样处理的:

api.add_resource(GetFiles, '/Files')
class GetFiles(Resource): 
    def post(self): 
        args = ParseArgs.parse_args()
        if '.txt' not in args['FileName']:
            FileName = f'{args["FileName"]}.txt'
        else: 
            FileName = args['FileName']

但我不明白为什么我的每一个请求都得到这样的回应:
{ "message": "Did not attempt to load JSON data because the request Content-Type was not 'application/json'." }
我尝试将application-json设置为content-type,但结果如下:{ "message": "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)" }事实上,这没有多大意义,因为我提交了一个表单,但至少我尝试了。
我真的不明白为什么,我已经使用这个应用程序几次了,以前从来没有,我不知道这是否是由于新的flask更新,因为我刚刚搬到另一个服务器,我使用的是docker容器。
先谢谢你的帮助。

tf7tbtn2

tf7tbtn21#

如果你在request中使用数据,头部将以form/data的形式发送。如果你想以application/json的形式发送,你必须使用json=

r = requests.post('http://x.x.x.x/Files', json = {
                'FileName': filename, 
                'Mode' : 'Add'  
            })

相关问题