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

, 👍-2

Обсуждение

Ха-ха, я написал "Pyton" вместо "Python" xD, извините за это, @T1mQa

«Связанные» покажите мне это: https://arduinoprosto.ru/q/63411/esp8266-https-post-body-request-with-wificlientsecure?rq=1 ; Возможно, nginx чувствителен к длине контента, сейчас проверю, @T1mQa


1 ответ


0

Хорошо. Вы должны использовать как минимум:

options.headers["Content-Length"] = "LenghtOfYourJson";
options.headers["Content-Type"] = "application/json";
,