Помогите пожалуйста с client.println

vitvit
Offline
Зарегистрирован: 09.05.2019

Всем привет. Народ, помогите плз с кодом, кто в теме. Не работает POST.

Arduino Uno + Ethernet Shield w5100

Вот строка, которая правильно работает в терминале на компе: 
 
Пытаюсь изобразить это на Ардуино, но не работает:
      client.println("POST api/v1/okGateReader/inductionLoop HTTP/1.1");
      client.println("Host: https://crm.internal.***.ru");
      client.println("User-Agent: Arduino/1.0");
      client.print("token=");
      client.print("123456");
      client.println("Connection: close");
      client.println();

 

 
Где накосячил? Вот полный скетч:
 
#include <Ethernet.h>
#include <SPI.h>

int switchPin = 8;
int m = 8;

// MAC-адрес:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEA };

EthernetClient client;

void setup()
{
//  Serial.begin(115200);
  Serial.begin(9600);
  Serial.println("Starting...");

// Ethernet.begin(mac);
  
//  pinMode(switchPin, INPUT);

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
  }else{
    Serial.print("IP: ");
    Serial.println(Ethernet.localIP());
  }

    char server[] = "crm.internal.***.com"; 
    if (client.connect(server, 443)) {
      Serial.println("connected");
      // Make a HTTP request:
//      String query = "POST api/v1/okGateReader/inductionLoop HTTP/1.1";
//      client.println(query);
      client.println("POST api/v1/okGateReader/inductionLoop HTTP/1.1");
      client.println("Host: https://crm.internal.***.com");
      client.println("User-Agent: Arduino/1.0");
      client.print("token=");
      client.print("12345");
      client.println("Connection: close");
      client.println();
      Serial.println("запрос отправлен");
    }
    else {
      Serial.println("port 443 connection failed");
    }
   
  }
// }

void loop() {
  // put your main code here, to run repeatedly:

}

 

 

vitvit
Offline
Зарегистрирован: 09.05.2019

Сорри, не думал, что форум воспримет тестовые адреса Host как ссылки и обренёт их в теги :) А редактировать пост нет прав.

sadman41
Offline
Зарегистрирован: 19.10.2016

Port 443 - HTTPS, в его случае обычный plain text protocol никак не работает.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

Заголовок 'Host:' построен не верно, должен содержать имя хоста [опционально номер порта] запрашиваемого ресурса (рфц 2616 раздел 14.23)
После заголовка 'User-Agent:' какой то треш начинается. Не заголовок а непонятно что 'token=12345Connection: close'
Вы приводите пример с curl, который пОстит запрос с данными, содержащими токен, сами пытаетесь выполнить пустой пост, без данных, только заголовки.

 

vitvit
Offline
Зарегистрирован: 09.05.2019

Спасибо всем. А сможете написать этот кусок кода, как надо? Не программист я, к сожалению. Простые команды осилил, а вот такое для меня уже запредельно :(

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

vitvit пишет:

 А сможете написать этот кусок кода, как надо? 

Запостите эту просьбу в разделе Ищу исполнителя

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

@vitvit, Мне нравится ход ваших мыслей, сначала просим найти ошибки.

vitvit пишет:
Где накосячил? Вот полный скетч:

А после просим написать код.
vitvit пишет:
А сможете написать этот кусок кода, как надо?

vitvit
Offline
Зарегистрирован: 09.05.2019

Не-не, вы меня не правильно поняли, я думал, что должно вот так заработать и я просто где-то что-то пропустил. Пойду в раздел Ищу исполнителя, так проще будет :)