STM32-ESP8266 -GET请求

时间:2018-10-11 15:28:27

标签: stm32 esp8266

我正在将STM32与ESp8266配合使用,并使用最新的AT命令固件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 :(得分:1)

假设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变量。