Curl: HTTP/1.1 100 Продолжить сообщение при загрузке файла

Я загружаю файл с помощью curl в один из моих проектов django, он отлично работает в localhost, но когда я размещал проект на удаленном сервере, он не работает.

Я отправляю файл из этой команды

curl -i --form docfile=@/path_to_file http://example.com/process-file

и в views.py я обрабатываю этот файл как

def process_file(request):
    if request.method != 'POST':
        return HttpResponseNotAllowed('Only POST Method')

    docfile = request.FILES['docfile']

    output = main(0, docfile) # output is json object
    return HttpResponse(output,content_type = "application/json")

Это прекрасно работает, когда я работаю на локальной машине, но отправка запроса POST на удаленный сервер с возвратом curl

HTTP/1.1 100 Continue

и ничего не делать. Файл загружается. Что я должен делать.

Спасибо

Редактировать 1: Я пытался отправить какой-то другой HttpResponse (имя файла) из другого метода представления, он работает нормально, но когда я обрабатываю файл, он просто отправляет HTTP/1.1 100 Продолжить

1 ответ

Я не знаю точно, как это исправить в вашем проекте, но похоже, что ваш curl отправляет Expect: 100-continue заголовок, предлагая удаленному серверу отправить обратно HTTP/1.1 Continue, curl ожидает возврата этого ответа, а затем загружает форму. Ты говоришь curl возвращает HTTP/1.1 100 Continue затем "ничего не делает", но на самом деле он должен быть загружен после того, как получит это, так что, возможно, какой бы обратный вызов вы не использовали, это не возвращает. Я бы попробовал посмотреть на это с помощью Wireshark.

Другие вопросы по тегам