@Dar1uz

Как отправить заголовки и данные esp8266seureclient?

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "Popogway";
const char* password = "12346789";

const char cert_DigiCert_Global_Root_CA [] PROGMEM = R"CERT(
-----BEGIN CERTIFICATE-----
MIIGQzCCBSugAwIBAgIMSkhE2WLs9uHaOkEXMA0GCSqGSIb3DQEBCwUAMFMxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSkwJwYDVQQDEyBH
bG9iYWxTaWduIEdDQyBSMyBEViBUTFMgQ0EgMjAyMDAeFw0yMzA4MDEwOTM4NTVa
Fw0yNDA5MDEwOTM4NTRaMBYxFDASBgNVBAMMCyouZGFkYXRhLnJ1MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9Ybmeyr7BRP20aRsVz8xJ/YUGLGDDqWQ
ABhTsHQCGNyApRUCG7FDZYQXedhualCMqPPEDEtl4TVxid6n7LdsDnuqLQIvcdv6
QY4aZ2VIcHVFZGll2AbAPzdiBkhtssgx/gWw37Z64lRf0hHjDiXOEmP3M0lrO+0C
APYdFqeu95KyXmKsdPGRAUW9lnOdKwR/3gd4MksLj9cZmffN8l2rjY7vCBPOuCE6
zKthkqxzO7/D8BtQAy7X+dK6OR/8FlDKgdKUnk9aMfUmbCWJozT7KfeWNnctOsbu
QlSbkLISdnWZ6z6nAq6H6ZBBtg8EWBDTZk1Ys91lSqTU79OEiVVNJwIDAQABo4ID
UjCCA04wDgYDVR0PAQH/BAQDAgWgMIGTBggrBgEFBQcBAQSBhjCBgzBGBggrBgEF
BQcwAoY6aHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2Ny
M2R2dGxzY2EyMDIwLmNydDA5BggrBgEFBQcwAYYtaHR0cDovL29jc3AuZ2xvYmFs
c2lnbi5jb20vZ3NnY2NyM2R2dGxzY2EyMDIwMFYGA1UdIARPME0wQQYJKwYBBAGg
MgEKMDQwMgYIKwYBBQUHAgEWJmh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3Jl
cG9zaXRvcnkvMAgGBmeBDAECATAJBgNVHRMEAjAAMEEGA1UdHwQ6MDgwNqA0oDKG
MGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM2R2dGxzY2EyMDIwLmNy
bDAhBgNVHREEGjAYggsqLmRhZGF0YS5ydYIJZGFkYXRhLnJ1MB0GA1UdJQQWMBQG
CCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBQNmMBzf6u9vdlHS0mtCkoM
rD7HfDAdBgNVHQ4EFgQUUP+airoMSRXeS2zo0jZjVfB5MJAwggF8BgorBgEEAdZ5
AgQCBIIBbASCAWgBZgB1AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7Wb
AAABibB3Ag8AAAQDAEYwRAIgescSzvbPJ/WQMniMzxI8ywehJ801XtWXCQsbHLrU
4BsCIET979hRUbPgMqomf2uQlP2HtQEy5L7Y0WE/82gq8VfpAHYASLDja9qmRzQP
5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGJsHcCGAAABAMARzBFAiEAmnqzzYGf
DgRY+rpHvwYgKgIkU/bAvf9k/aIOjrn0RlcCIAmN3Mq2sveP1HlJIKXrOAC3l1cL
z+4+Hp1u5jIGMSfuAHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sA
AAGJsHcCQwAABAMARjBEAiAmMSv4eshudBkdWAQj+afASfeOgVGiGZSbx+YeI9Ug
GgIgBWb3k9SVJ33Vl41FLCE56sJMpM27yhuBr1PGBd3Rl+swDQYJKoZIhvcNAQEL
BQADggEBAI/L3FpP0JZBOYG+n+wkNNbLAtY3TRsER1cbpk2cZKAl+0PaDe6vUPaH
jSNwvaFmiUp+5g534If2i95iKoLQ2pEbrFgFNCEc4GfGo/b/1zxGPGYINBbw0Hn0
Ki/vVphGO6BVm9ZoL+zCYCL31ErdmQ3kgX8Fp2v43WXxyvfrCxBHCoOXpYswWaPd
Bjc7So3v3r4qZ4SzH2MjxvwgjwpfTC8c8BZosrkdDscn0jDUO/28IV8viffvGWy1
/5T6CMQMUOESKJraGc42HP+TQ0IOEpYbtA+JQO4X+jSRnEWrMghmRK/ZyWFArC79
9COMl54BB7r9iSPscTiWQnrbvQmhuJc=
-----END CERTIFICATE-----
)CERT";

const char* api_host = "cleaner.dadata.ru";
const uint16_t api_port = 443;

X509List cert(cert_DigiCert_Global_Root_CA);

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

  // Set time via NTP, as required for x.509 validation
  configTime(3 * 3600, 0, "pool.ntp.org", "time.nist.gov");

  Serial.print("Waiting for NTP time sync: ");
  time_t now = time(nullptr);
  while (now < 8 * 3600 * 2) {
    delay(500);
    Serial.print(".");
    now = time(nullptr);
  }
  Serial.println("");
  struct tm timeinfo;
  gmtime_r(&now, &timeinfo);
  Serial.print("Current time: ");
  Serial.print(asctime(&timeinfo));

  // Use WiFiClientSecure class to create TLS connection
  WiFiClientSecure client;
  Serial.print("Connecting to ");
  Serial.println(api_host);

  Serial.printf("Using certificate: %s\n", cert_DigiCert_Global_Root_CA);
  client.setTrustAnchors(&cert);

  if (!client.connect(api_host, api_port)) {
    Serial.println("Connection failed");
    return;
  }

  String url = "/api/v1/clean/address";
  Serial.print("Requesting URL: ");
  Serial.println(url);
client.print(String("POST ") + url + " HTTP/1.1\r\n" + 
    "Host: " + api_host + "\r\n" +
    "Content-Type: application/json" + "\r\n" +
    "Accept: application/json" + "\r\n" +
    "Authorization: Token ТОКЕН" + "\r\n" +
    "X-Secret: КЛЮЧ" + "\r\n" +
    "Connection: close\r\n\r\n");
  Serial.println("Request sent");
  while (client.available()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      Serial.println("Headers received");
      break;
    }
  }
  String line = client.readStringUntil('\n');
  Serial.println(line);
  line = client.readStringUntil('\n');
  Serial.println(line);
}

void loop() {}


Как я понял, заголовки отправляются в методе client.print(), но спустя несколько часов поисков в интернете я так и не смог найти, как отправить данные. Мне нужно отправить ["Красноярск"]. Подскажите, пожалуйста, с помощью чего это можно сделать?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
https://dzen.ru/a/ZBC7dQKVTTCDHm0y
Ну гуглится же на каждом углу. Что не так например с этой инструкцией?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы