HTTP应用
HTTP(S)使用流程
通过模块的 AT+SAPBR
命令,可配置 PDP 上下文,激活/去激活上下文以及查询PDP 上下文状态。再发送HTTP(S) AT 命令,可以发送 HTTP(S) GET/POST 请求到 HTTP(S)服务器,并读取来自 HTTP(S)服务器的响应结果。大致流程如下:
AT+SAPBR
配置APN,USERNAME等PDP通路的上下文信息AT+SAPBR
激活PDP通路AT+HTTPPARA="CID",x
配置PDP通路IDAT+HTTPPARA="URL",xxx
配置URL地址AT+HTTPACTION=x
进行GET/POST等操作请求\+HTTPACTION: x,xx
主动上报HTTP请求结果AT+HTTPREAD
读取HTTP服务器返回内容
小量数据GET请求
AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
OK
AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
OK
AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
OK
AT+HTTPINIT HTTP协议栈初始化
OK
AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
OK
AT+HTTPPARA="URL","http://httpbin.org/bytes/1000" 设置URL
OK
AT+HTTPACTION=0 GET请求
OK
+HTTPACTION: 0,200,1000 GET结果
AT+HTTPREAD
+HTTPREAD: 1000
xxxx...... 服务器返回的数据内容
OK
AT+HTTPTERM 结束当前HTTP会话
OK
大量数据GET请求
大量数据是指服务器需要返回的数据超过28KB,模组RAM空间限制,无法全部缓存所有服务器返回数据。需要边接收服务器数据,边通过AT指令输出数据。如果服务器输出数据不及时读取,服务器端会利用TCP窗口缓存技术,暂停当前的发送,直到通过AT指令读取数据后,再启动发送。
AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
OK
AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
OK
AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
OK
AT+HTTPINIT HTTP协议栈初始化
OK
AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
OK
AT+HTTPPARA="URL","http://httpbin.org/bytes/10000"
OK
AT+HTTPEXACTION=0
OK
+HTTPEXACTION: 0,200,10000
+HTTPEXGET 服务器返回数据主动上报
AT+HTTPEXGET 获取服务器返回数据内容
+HTTPEXGET: 9992 服务器返回的数据长度
XXXXX................ 服务器返回的数据内容
OK
+HTTPEXGET 服务器返回数据主动上报
AT+HTTPEXGET 获取服务器返回数据内容
+HTTPEXGET: 8 服务器返回的数据长度
XXXXX................ 服务器返回的数据内容
OK
没有等到新的数据上报
AT+HTTPEXGET 再次获取也没有得到数据,请求结束
OK
AT+HTTPTERM 结束当前HTTP会话
OK
小量数据POST请求
AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
OK
AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
OK
AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
OK
AT+HTTPINIT HTTP协议栈初始化
OK
AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
OK
AT+HTTPPARA="URL","http://httpbin.org/post"
OK
AT+HTTPDATA=4,100000 post数据输入
DOWNLOAD
输入数据1234
OK
AT+HTTPACTION=1 执行POST
OK
+HTTPACTION: 1,200,350 服务器响应POST请求
AT+HTTPREAD 读取服务器返回内容
+HTTPREAD: 350
{
"args": {},
"data": "1231", 返回数据12134
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "4",
"Host": "httpbin.org",
"User-Agent": "YCOM_MODULE",
"X-Amzn-Trace-Id": "Root=1-676e3fd1-2e367ddf54a60eb32fdb470f"
},
"json": 1231,
"origin": "36.113.71.171",
"url": "http://httpbin.org/post"
}
OK
AT+HTTPTERM 结束当前HTTP会话
OK
大量数据POST请求
POST大量数据请求,也和大量数据GET请求一样,是指服务器返回数据超过28KB的情况。
AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
OK
AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
OK
AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
OK
AT+HTTPINIT HTTP协议栈初始化
OK
AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
OK
AT+HTTPPARA="URL","http://httpbin.org/post"
OK
AT+HTTPEXACTION=1,1000 初始化HTTP POST请求
OK
+HTTPEXACTION: 1
AT+HTTPEXPOST=1000,10000 输入POST数据,并执行POST请求
>
OK
+HTTPEXACTION: 1,200,1349 POST请求结果
+HTTPEXGET 服务器返回数据,主动上报
AT+HTTPEXGET 读取服务器返回数据
+HTTPEXGET: 1349
{
"args": {},
"data": "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "1000",
"Host": "httpbin.org",
"User-Agent": "YCOM_MODULE",
"X-Amzn-Trace-Id": "Root=1-676e4623-275162c82862cb236c264937"
},
"json": null,
"origin": "36.113.71.171",
"url": "http://httpbin.org/post"
}
OK
AT+HTTPTERM
OK
下载文件
AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
OK
AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
OK
AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
OK
AT+HTTPINIT HTTP协议栈初始化
OK
AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
OK
AT+HTTPPARA="URL","http://httpbin.org/bytes/2900"
OK
AT+HTTPGETTOFS="http.bin" 将服务器返回内容存储到文件http.bin中
OK
+HTTPGETTOFS: 200,2900 执行完成
AT+FSFLSIZE="http.bin" 查询文件大小
+FSFLSIZE: 2900
OK