超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。用户通过M0M1系列的模组可使用2种方式进行HTTP的交互:1.使用标准的SOCKET通信,2.使用HTTP+AT固件中的HTTP指令进行交互,本文将着重介绍第二种交互方式。
一、HTTP通信基本设置
1. 设置HTTP服务器端口和地址
AT+HTTPURL=80,www.baidu.com
功能:设置/查询HTTP服务器端口和地址 |
|
查询指令格式: AT+HTTPURL<CR><LF> |
响应: +ok=<port,address><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPURL=<port,address> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: port:HTTP服务器端口号 address:HTTP服务器的IP地址或者域名 |
2. 设置协议头POST或者GET的路径
AT+HTTPPH=/index.html
功能:设置/查询HTTP协议头POST或者GET的路径 |
|
查询指令格式: AT+HTTPPH<CR><LF> |
响应: +ok=<address><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPPH=<address> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: address:HTTP协议头POST或者GET的路径 |
3. 设置协议头中Connection属性
AT+HTTPCN=keep-alive
功能:设置/查询HTTP协议头Connection属性 |
|
查询指令格式: AT+HTTPCN<CR><LF> |
响应: +ok=<connection><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPCN=<connection> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: connection:HTTP协议头Connection属性 |
4. 设置协议头中User-Agent属性
AT+HTTPUA=lwip
功能:设置/查询HTTP协议头User agent属性 |
|
查询指令格式: AT+HTTPUA<CR><LF> |
响应: +ok=<user agent><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPUA=<user agent> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: user agent:HTTP协议头User-Agent属性 |
5. 设置协议头中Content-type属性
AT+HTTPCT=text/html
功能:设置/查询HTTP协议头Content-type属性 |
|
查询指令格式: AT+HTTPCT<CR><LF> |
响应: +ok=<content type><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPCT=<Content type> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: content type:HTTP协议头Content-type属性 |
注意:如果在通信中,不需要修改HTTP的属性,则以上属性只需要进行一次设置即可。否者需要在每次通信前再设置一次。
二、HTTP数据交互
1. 使用GET方式进行交互:AT+HTTPTP=GET
使用POST方式进行交互:AT+HTTPTP=POST
功能:设置/查询HTTP协议头交互属性 |
|
查询指令格式: AT+HTTPTP<CR><LF> |
响应: +ok=<type><CR><LF><CR><LF> |
参数: 请参考设置参数 |
|
设置指令格式: AT+HTTPTP=<type> <CR><LF> |
响应: +ok<CR><LF><CR><LF> |
参数: type:HTTP协议头交互属性,POST或者GET |
2. 开始进行数据交互:
功能:HTTP协议交互 |
|
指令格式: AT+HTTPDT=<len><CR> |
响应: +ok=n[,data]<CR><LF><CR><LF> |
参数: len:发送数据的长度。范围:0~2048 字节 当输入成功并且连接HTTP服务器连接成功后返回一个”>”, 串口等待 3s 输入,将串口收到数据发送到HTTP,若两个字节之间的间隔大于 10ms 则认为输入结束将立刻发送。 n:收到HTTP返回的数据内容长度 data:实际收到的HTTP返回的内容 |
注:
1. 当返回+ok时,则表明模组在HTTP层通信已经完成。当返回+ERR时,则表明HTTP通信失败。
2. 如果无上传的数据,则len一定要填写为0,如:AT+HTTPDT=0
3.当出现>表示HTTP已经连接成功,则成功的上传了HTTP的包头
4.只有当n大于0时,data部分才会有数据显示。当出现+ok=0时,也表示通信成功,只是HTTP部分没有数据部分返回。