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();
}
@walves, 👍-1
Обсуждение1 ответ
Лучший ответ:
▲ -1
Заголовок Content-Length должен быть http.addHeader("Content-Length", String(sizeof(msg)));
,
@walves
это не может быть правильным. sizeof(msg) — это размер объекта String, который не является размером строки, управляемой объектом String, @Juraj
Смотрите также:
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- Как правильно отправлять данные через http с помощью sim908?
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- ESP8266 Ошибка неверного запроса 400
- GSM-модуль Sim800l не может подключить данные gprs
- Более быстрый способ анализа HTTP-ответа в Arduino
ваш код не компилируется без ошибок... пожалуйста, представьте минимальную компилируемую программу, в которой все еще проявляется проблема, @jsotola