使用ESP32 通过TCP POST方法发送数据,发现底层驱动会发送一个乱码字符?

Moderator: ESP_Bob

swordlife
Posts: 2
Joined: Tue Apr 26, 2022 9:33 am

使用ESP32 通过TCP POST方法发送数据,发现底层驱动会发送一个乱码字符?

Postby swordlife » Tue Jul 19, 2022 7:43 am

ESP32 连接上WiFi,通过WiFi连接云端,和云端通过POST方式通信:

发送的JSON数据字符串短的时候还好,但发送JSON数据包长了以后,发现云端老是反馈参数出错。
通过打印跟踪检测程序发送的参数没有错。
最终只能通过Wireshark 网络抓包,发现底层驱动将发送的JSON数据包中的一个字节改为乱码了。
程序打印跟踪,在调用 int esp_transport_write()这个函数前,字符串还是好的。
这个函数没有就直接调用底层驱动了,
int esp_transport_write(esp_transport_handle_t t, const char *buffer, int len, int timeout_ms)

------------
要发送的字符串:
{
"app_id": "111111111111111111111111",
"timestamp": "2022-06-19 00:35:30",
"biz_content": {
"TID": "E2806995000040010105995D",
"RFID": "E2806995000040010105995D",
"deviceId": "111111111111111111111111",
"sessionId": "111111111111111111111111E2806995000040010105995Dd858c35becc64c74984f38d3b47ef1e1"
}
}

通过wireshark 抓包发现的问题(字符串中的105995 中的59 变为 00 了,下面是字符串转换为16进制的数据):
22 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
31 31 31 31 31 31 31 31 31 45 32 38 30 36 39 39
35 30 30 30 30 34 30 30 31 30 31 30 00 00 39 35
44 64 38 35 38 63 33 35 62 65 63 63 36 34 63 37
34 39 38 34 66 33 38 64 33 62 34 37 65 66 31 65
31 22

各位大侠遇到过此类问题没有?

Who is online

Users browsing this forum: No registered users and 95 guests