Метод HTTP PUT на NodeMCU/ESP8266

Некоторое время я пытался отправить запрос на размещение с моего esp8266, но не могу понять, почему он не работает, и в Интернете почти нет сообщений о запросах на размещение. Я продолжаю получать ошибки вокруг int httpCode = http.sendRequest("PUT", String(data));

Журнал ошибок: https://gist.github.com/dkbay/ab3fedf5e89d841d25b24fb829df74ef

#include <ESP8266HTTPClient.h>

#define LED_BUILTIN 2

const char* ssid     = "Some SSDI";
const char* password = "Some wifi password";     

int wifiStatus;

void setup() {

  Serial.begin(115200);\
  pinMode(LED_BUILTIN, OUTPUT);
  delay(200);



  // Начнем с подключения к сети WiFi

  Serial.println();
  Serial.println();
  Serial.print("Your are connecting to;");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    digitalWrite(LED_BUILTIN, LOW);
    delay(500);
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.print(".");
  }

}   

void loop() {
  wifiStatus = WiFi.status();

  if(wifiStatus == WL_CONNECTED){

    HTTPClient http;

    http.begin("http://google.com/");
    http.addHeader("Content-Type", "application/json");
    String data = "{\"on\":false}";
    int httpCode = http.sendRequest("PUT", String(data));
    String payload = http.getString();

    Serial.println(httpCode);
    Serial.println(payload);

    http.end();
     Serial.println("");
     Serial.println("Your ESP is connected!");
     Serial.println("Your IP address is: ");
     Serial.println(WiFi.localIP());  
  }
  else{
    Serial.println("");
    Serial.println("WiFi not connected");
  }
  delay(1000); // проверяем соединение раз в секунду

}

, 👍1

Обсуждение

что он должен делать и что он делает? Разве «false» в json не должно быть в «»?, @Juraj

@Juraj Этого не было в кавычках, когда я сделал это в узле ... Он должен отправить запрос «PUT» на мои оттенки света, чтобы обновить их, но вместо этого он выдает эту ошибку https://gist.github.com/dkbay/ ab3fedf5e89d841d25b24fb829df74ef, @Dkbay

он не компилируется, не "не работает". используйте sendRequest("PUT", data.c_str());, @Juraj


1 ответ


1
HTTPClient http;
http.begin("http://google.com?on=false");
http.addHeader("Content-Type", "application/json");
int httpCode = http.sendRequest("PUT", "");
String payload = http.getString();

попробуйте с этим кодом, если сервер .php, получить данные по $_REQUEST

,