Как поставить условие на HTTP.POST?

Я установил свой код так, чтобы, если он выполняет HTTP.POST, счетчик сбрасывался / возвращался к нулю, но я заметил, что даже если он возвращает другой http-код, чем 201 (-1 или 500), счетчик все равно сбрасывается.

Как поставить здесь условие, что если httpResponseCode = 201 (успешно), то reset (total = 0;) else http.end().

Спасибо!

void loop () {
  if ((millis() - lastTime) > timerDelay) {
    if (WiFi.status() == WL_CONNECTED) {
      HTTPClient http;
      http.begin(serverName);

      http.addHeader("Content-Type", "application/json");
      char temp[32];
      snprintf(temp, 32, "{\"amount\":\"%.2f\"}", total);
      int httpResponseCode = http.POST(temp);
     
      Serial.print("HTTP Response code: ");
      Serial.println(httpResponseCode);
      Serial.println(total);
      total = 0;
        
      http.end();
    }

void count () {
  total += rainrate;
}

, 👍-3


1 ответ


Лучший ответ:

1

Вы имеете в виду что-то вроде этого?

if( httpResponseCode==201 )
  total = 0;

Тогда весь ваш код станет:

void loop () {

  if ((millis() - lastTime) > timerDelay) {

    if(WiFi.status()== WL_CONNECTED){
      HTTPClient http;
      
      http.begin(serverName);

      http.addHeader("Content-Type", "application/json");

      char temp[32];
      snprintf(temp, 32, "{\"amount\":\"%.2f\"}", total);
      int httpResponseCode = http.POST(temp);

     
      Serial.print("HTTP Response code: ");
      Serial.println(httpResponseCode);
      Serial.println(total);

      if( httpResponseCode==201 )
        total = 0;
        
      http.end();
    }

void count () {
 total += rainrate;
}

,

Я пытаюсь сделать это раньше, мне просто не хватает ==лол. кстати, спасибо вам! :), @Giddsec

@Giddsec Это ошибка, которую я все еще иногда совершаю. Рад, что теперь он у тебя работает. Твое здоровье., @Gerben