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.