AT指令进行HTTP交互

        超文本传输协议(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部分没有数据部分返回。



如果遇到模组使用上的问题,可以进群号为519630819的QQ群进行交流。



猜你喜欢

转载自blog.csdn.net/mqlinks/article/details/80768516