Отправка файла в Flask с помощью cURL возвращает ошибку 400

#python #curl #flask

#python #curl #flask

Вопрос:

Я хочу опубликовать файл с помощью cURL в представлении Flask. Однако в ответ я получаю ошибку 400. Почему приведенная ниже команда завершается ошибкой?

 @app.route('/deploy/partial', methods=['POST'])
def postfile():
    try:
        file = request.files['file']
        filename = secure_filename(file.filename)
        file.save(os.path.join('/home/test/test.txt', filename))
        return 'OK', 200
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise
  
 curl -X POST -H "Content-Type: multipart/form-data" -F "file=@FILEPATH" http://127.0.0.1:25252/deploy/partial

Unexpected error: <class 'werkzeug.exceptions.HTTPException.wrap.<locals>.newcls'>
127.0.0.1 - - [12/Oct/2016 22:57:43] "POST /deploy/partial HTTP/1.1" 400 

HTTP/1.1 100 Continue

HTTP/1.0 400 BAD REQUEST
Content-Type: text/html
Content-Length: 192
Server: Werkzeug/0.11.11 Python/3.4.3
Date: Wed, 12 Oct 2016 19:31:07 GMT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not    understand.</p>
  

Ответ №1:

Я получил

Неожиданная ошибка: .newcls’>

после того, как я случайно переименовал request.form[‘name’] в request.form[‘ame’] (обратите внимание на неправильное ‘ame’), в то время как мое поле формы name = StringField(…)

Я изменил request.form[‘ame’] на request.form[‘name’], и ошибка исчезла, т. Е. flask работает

Не уверен, что это и ваш случай.

Комментарии:

1. эй, сначала я подумал то же самое, но в моем случае это кажется случайным … например, я отправляю 10 идентичных файлов с одинаковыми аргументами curl. . первые 4 или 5 работают finr, а другие выдают исключение thr…