HTTPClient отправляет двоичные данные в Prometheus pushgateway

http m5stack

Я новичок в Arduino и IoT. и с помощью M5StickC Plus2 в Arduino IDE.

Я пытаюсь отправить данные на Prometheus pushgateway, но получаю только код ответа 400. Pushgateway принимает только двоичные данные. Все работает нормально, если я делаю это через curl. Вот мой код:

#include <WiFi.h>
#include <HTTPClient.h>

WiFiClient client;
HTTPClient http;
bool httpOK = http.begin(client, "192.168.0.63", 9091, "/metrics/job/pushgateway-orangepi");

if(httpOK) {
    String msg = String("temperatura{local=\"bsb\"} 24.12\n");
    http.addHeader("Content-Type", "application/octet-stream");
    http.addHeader("Content-Length", String(msg.length()));
    int httpResponseCode = http.POST(msg);
    http.end();
}

, 👍-1

Обсуждение

ваш код не компилируется без ошибок... пожалуйста, представьте минимальную компилируемую программу, в которой все еще проявляется проблема, @jsotola


1 ответ


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

-1

Заголовок Content-Length должен быть http.addHeader("Content-Length", String(sizeof(msg)));

,

это не может быть правильным. sizeof(msg) — это размер объекта String, который не является размером строки, управляемой объектом String, @Juraj