STM32 - ESP8266 -GET请求
STM32 - ESP8266 -GET Request
我正在使用 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
假设 TCP 通信正常工作(您可以连接到服务器,发送和接收数据)并且您连接到的主机在该端口上提供 HTTP,我可以从您的请求中看到的问题是您最后缺少额外的 CRLF,如下所示:
char *req = "GET /opaaa HTTP/1.1\r\n\r\n";
Wifi_TcpIp_SendDataTcp(0, strlen(req), (uint8_t*)req);
这表示您发送的 HTTP headers 结束。在您原来的情况下,服务器可能仍在等待更多 headers,因此会暂停将响应发送回给您。
我还建议清理发送代码,我在上面粘贴了一种方法 - 您将字符串分配给单个字节 uint8_t
变量。
我正在使用 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
假设 TCP 通信正常工作(您可以连接到服务器,发送和接收数据)并且您连接到的主机在该端口上提供 HTTP,我可以从您的请求中看到的问题是您最后缺少额外的 CRLF,如下所示:
char *req = "GET /opaaa HTTP/1.1\r\n\r\n";
Wifi_TcpIp_SendDataTcp(0, strlen(req), (uint8_t*)req);
这表示您发送的 HTTP headers 结束。在您原来的情况下,服务器可能仍在等待更多 headers,因此会暂停将响应发送回给您。
我还建议清理发送代码,我在上面粘贴了一种方法 - 您将字符串分配给单个字节 uint8_t
变量。