STM32 - ESP8266 -Получить запрос - PullRequest
0 голосов
/ 11 октября 2018

Я использую STM32 с ESp8266, используя новейшую прошивку AT Command V2. Также я включаю https://github.com/nimaltd/ESP8266, которая помогает анализировать команды

Я могу подключиться к своей точке доступа маршрутизатора и локальному протоколу TCPсервер, но при отправке запросов GET я ничего не получаю на моем локальном

    const char* host = "192.168.1.9";

      while(!Wifi_TcpIp_StartTcpConnection(0,host,3437,10)){
          char buffer[] = "Unable to connect to TCP Backend\r\n";
                        HAL_UART_Transmit(&huart1,buffer,sizeof(buffer),HAL_MAX_DELAY);

      };

uint8_t  req   ="GET /opaaa HTTP/1.1\r\n";          Wifi_TcpIp_SendDataTcp(0,sizeof(req),&req); //success but i receive nothing

1 Ответ

0 голосов
/ 11 октября 2018

Предполагая, что связь TCP работает правильно (вы можете подключиться к серверу, отправлять и получать данные) и что хост, к которому вы подключаетесь, обслуживает HTTP на этом порту, проблема, которую я вижу в вашем запросе, заключается в том, что вы пропускаетедополнительный CRLF в конце, например, так:

char *req = "GET /opaaa HTTP/1.1\r\n\r\n";
Wifi_TcpIp_SendDataTcp(0, strlen(req), (uint8_t*)req);

Это означает конец отправляемых вами заголовков HTTP.В вашем исходном случае сервер все еще может ожидать новых заголовков и поэтому не может отправить ответ вам.

Я также предлагаю очистить код отправки, один из способов которого я вставил выше- вы присваивали строку одной байтовой переменной uint8_t.

...