嵌入式技术论坛
直播中

发生的方式

9年用户 1325经验值
擅长:处理器/DSP
私信 关注
[问答]

使用AT组件+SIM7600如何处理HTTP报文呢

求助
使用AT组件+SIM7600。
在使用AT组件提供的接口时候,未使用SAL+socket.

处理一下格式会遇到问题:
send: AT+HTTPREAD=0,372
rece: OK\r\n
rece: +HTTPREAD: 372\r\n
rece: {"code": 200,"message": "Success".....}\r\n [http报文]
rece: +HTTPREAD: 0\r\n

如何 [http报文]
如果使用at_exec_cmd.. 会忽略OK之后的报文。
如果使用urc识别:关键字设置+HTTPREAD:则只会识别最后一行。或则报文丢失。

回帖(4)

李超

2022-9-8 11:11:53
你可以用at_resp_parse_line_args这个函数试试。
这个函数的功能为:Get and parse AT response buffer arguments by line number,即可以选择来获取AT应答的某一行数据。
举报

刘静

2022-9-8 11:12:01
串口返回的东西,不都得处理吗,收“+HTTPREAD: 0\r\n”之前,把前面的东西缓存起来先。
举报

李萍

2022-9-8 11:12:13
URC的用法有问题吧,以下面为例

+HTTPREAD: 10rn
12OK34rn56
URC前缀后缀分别设置为+HTTPREAD:和rn,这样URC获取的是第一行数据:+HTTPREAD: 10rn

进入URC处理函数后,先解析URC可知有10字节长度的数据,此时通过at_client_recv()读10字节就读完所有数据了,数据里面允许有任意字符
举报

发生的方式

2022-9-8 11:12:25
+HTTPREAD: X这个是变量,所以不能设定死
举报

更多回帖

发帖
×
20
完善资料,
赚取积分