Nodemcu ПУБЛИКУЕТ ответ "-1"
Устройство Nodemcu возвращает HTTP - ответ -1 для запроса POST в django rest api.
Я попробовал приведенный ниже http-запрос к почтальону, и он отлично работает.
http://localhost:8000/api/datalogs/?plant=http://localhost:8000/api/plants/1/&light=23&temperature=24&humidity=75&soil=Dry&moisture=787&remarks=/
Это мой запрос на публикацию в arduino:
if(WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(host_url);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
httpCode = http.POST(postData);
payload = http.getString();
http.end();
}
Ожидаемый результат-200, но я получаю -1. Может кто-нибудь, пожалуйста, объяснить?
@Tanveer Hoque, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 1
Итак, я нашел решение. Это была очень простая ошибка. IP-адрес NodeMCU не совпадает с IP-адресом компьютера, на котором работал сервер.
Я изменил строку localhost с IP-адресом моего компьютера, и это сработало отлично.
,
@Tanveer Hoque
Смотрите также:
- WebSocketsServer.h: No such file or directory
- Получение строкового ввода с веб-страницы NodeMCU и его печать на последовательном мониторе
- Почему, когда я пытаюсь подключить ESP8266 к узлу, разорванному в моем локальном хосте, он продолжает отключаться и подключаться?
- Задержка в веб-сокете
- Сервер NodeMCU перестает отвечать через некоторое время
- Ошибка запроса HTTP myphp RFID
- Не удается подключиться к Интернету с помощью проекта Proteus Arduino
- Команда продолжает повторяться, потому что веб-страница пытается обновить
значения
host_url
иpostData
не отображаются ... ваш код отправляет неизвестные данные .. поэтому объяснять нечего, @jsotolaвы используете имя "localhost" в запросе с другого устройства?, @Juraj
можете ли вы более подробно рассказать о коде на стороне nodemcu, например, что такое host_url, а также postdata. В то же время обновите форму кода на стороне Django, например, какая функция получает http-ответ от nodemcu., @ Tarun
Да, спасибо. Возможно, я связываюсь с локальным хостом, в то время как у моего устройства другой ip-адрес, чем у моего компьютера.. Я должен сначала попробовать [Юрай](https://arduino.stackexchange.com/users/37622/juraj), @Tanveer Hoque
Значение host_url равно
http://localhost:8000
и постданные таковы"plant="+String(host)+"plants/1/&light="+String(lux)+"&temperature="+String(temperature)+"&humidity="+String(humidity)+"&soil="+mRes+"&moisture="+mVal+"&remarks=/";
Я думаю, что проблема может быть в **локальном хосте** [jsotola](https://arduino.stackexchange.com/users/40318/jsotola), @Tanveer HoqueИтак, я попробовал использовать **ip-адрес**, также настроенный из **настроек django**, отлично работает с моего мобильного устройства, клиента Insomnia REST API. Но Nodemcu возвращает **301 Перемещенный Навсегда**., @Tanveer Hoque
если он возвращает 301, то разрешен только https, поэтому URL-адрес должен использовать https://, @Juraj