https post с использованием кастомной библиотеки «Fetch»
Я пытаюсь отправить POST-запрос на свой ssl-сервер, используя https. Вот мой пример кода Arduino:
#include "recipes/WiFi.h"
#include "Fetch.h"
#define SSID "My_wifi_name"
#define PASSPHRASE "My_wifi_pass"
#define FINGERPRINT "Sha-1 ssl cert from website"
void setup() {
Serial.begin(9600);
connectWiFi(SSID, PASSPHRASE);
}
void loop() {
RequestOptions options;
options.method = "POST";
options.body = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\[48.756080,2.302038]}";
options.fingerprint = FINGERPRINT;
Response response = fetch("https://MYSITE.COM/post", options);
// Printing res ponse.
Serial.println(response);
// Printing respons headers.
Serial.printf("Connection Header: \"%s\"\n", response.headers["Content-Type"].c_str());
Serial.printf("Connection Header: \"%s\"\n", response.headers["Connection"].c_str());
delay(4500);
}
Проблема в том, что:
Запрос Python с данными по умолчанию {"323": "323"} на сервере в порядке, но мой сервер ничего не нашел в данных запроса arduino.
Есть идеи, как это исправить? Тай. Пользовательская библиотека GIThub: https://github.com/instanceofMA/arduino-fetch
@T1mQa, 👍-2
Обсуждение1 ответ
▲ 0
Хорошо. Вы должны использовать как минимум:
options.headers["Content-Length"] = "LenghtOfYourJson";
options.headers["Content-Type"] = "application/json";
,
@T1mQa
Смотрите также:
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Проанализировать большой ответ json с помощью ESP8266
- Запрос POST (HTTPClient) с ESP8266, не работающим на локальном хосте (код http = -1)
- Невозможно установить связь между модулем ESP-12E и мобильным устройством через маршрутизатор ESP-12E.
- ESP8266 загружает данные на облачную платформу Google
- Как изменить учетные данные Wi-Fi нескольких ESP8266 вместе
- ESP8266 не подключается к Wi-Fi
- Можно ли отключить WiFi на ESP8266?
Ха-ха, я написал "Pyton" вместо "Python" xD, извините за это, @T1mQa
«Связанные» покажите мне это: https://arduinoprosto.ru/q/63411/esp8266-https-post-body-request-with-wificlientsecure?rq=1 ; Возможно, nginx чувствителен к длине контента, сейчас проверю, @T1mQa