Почему у меня есть метод get вместо post?

#python #django #post #python-requests #celery

#python #django #Публикация #python-запросы #сельдерей

Вопрос:

У меня есть веб-сайт, использующий http, и все работало, но теперь я обновляю http до протокола https, и я получаю следующую проблему в задаче celery :

 b'{"detail":"Method \"GET\" no allowed."}'
  

Это моя строка с использованием post :

 requests.post('https://localhost/api/update', data=data, headers={'Content-Type': 'application/json'})
  

Я не понимаю, почему у меня проблема с методом GET, зная, что я использую метод POST.

Не могли бы вы мне помочь, пожалуйста?

Большое вам спасибо!

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

1. Связано ли это со всеми веб-сайтами или только с одним конкретным? Можете ли вы попробовать отправить такой запрос в корзину по адресу requestbin.com и подтвердите, что ошибка также присутствует? Я подозреваю, что веб-сайт, на который вы звоните, имеет проблему.

2. Это связано только с моим веб-сайтом, который я разработал с использованием Django.

3. Ах, тогда я подозреваю проблему с localhost и https, где вы не можете обслуживать ssl-файлы с места в карьер. Можете ли вы попробовать отправить вызов подобным образом и сообщить об этом? requests.post('/api/update',...

4. Я только что пробовал, но это не работает:/ Я думаю, проблема в обновлении с HTTP на HTTPS :/

5. У меня была та же ошибка :/

Ответ №1:

Возможно, API перенаправляет вас.

Попробуйте параметр

 allow_redirects=false
  

в вашем запросе и посмотрите, что произойдет.

Или попробуйте

 response.history
  

для получения дополнительной информации.