如何使用无线模块WizFi210的HTTP功能?
点击了解:无线模块WizFi210
1、HTTP和HTTPS简介
1.1 HTTP简介
HTTP即超文本传输协议(Hyper Text Transfer Protocol),客户端(User Agent)通过WEB浏览器或网络爬虫等工具向服务器(网站)上指定端口(默认为80)以URL(统一资源定位符,即网址)的形式发起一个HTTP请求(一般为GET、POST),服务器监听到这一请求后会回复一个状态行+响应消息的主体,从而形成了一个完整的HTTP“请求—响应”过程,而这一过程是建立在TCP连接之上的数据透明传输过程。
1.2 HTTPS简介
HTTPS全称Hyper Text Transfer Protocol over Secure Socket Layer,即经过SSL(Secure Socket Layer)加密的HTTP,简单地说就是HTTP的安全升级版。HTTPS的体系与HTTP大致相同,不同的是通过在HTTP和TCP层之间加入SSL层,达到数据加密和身份验证的目的。使用HTTPS需要申请CA证书(一般需要付费),采用443端口,现广泛用于www上安全敏感的通讯。
2、WizFi210实现HTTP请求的步骤
(1)设置WizFi210连接到一个可以登录远程HTTP服务器的AP并进入命令模式。
此时WizFi210需要运行在Station模式下,即AT+WM=0。可以有两种方式连接AP后进入命令模式的方式,一种是AT+WA=SSID直接进入到命令模式;一种是自动连接进入数据透传模式后键入“+++”进入命令模式。
(2)配置WizFi210的HTTP客户端:AT+HTTPCONF=<Param>,<Value>。
参数 |
含 义 |
参数值示例 |
2 |
HTTP授权的授权证书 | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
3 |
表示是否需要持久连接。(HTTP 1.1默认进行持久连接) | Connection: close |
4 |
WEB服务器支持的返回内容压缩编码类型 | Content-Encoding: gzip |
5 |
响应体的长度 | Content-Length: 348 |
6 |
在整个返回体中本部分的字节位置 | Content-Range: bytes 21010-47021/47022 |
7 |
请求的与实体对应的MIME信息 | Content-Type: application/x-www-form-urlencoded |
8 |
请求发送的日期和时间 | Date: Tue, 15 Nov 2010 08:12:31 GMT |
9 |
响应过期的日期和时间 | Expires: Thu, 01 Dec 2010 16:00:00 GMT |
10 |
发出请求的用户的Email | From: [email protected] |
11 |
指定请求的服务器的域名和端口号 | Host: www.zcmhi.com |
12 |
如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码 | If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT |
13 |
请求资源的最后修改时间 | Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT |
14 |
用来重定向接收方到非请求URL的位置来完成请求或标识新的资源 | Location: http://www.zcmhi.com/archives/94.html |
15 |
包括实现特定的指令,它可应用到响应链上的任何接收方 | Pragma: no-cache |
16 |
只请求实体的一部分,指定范围 | Range: bytes=500-999 |
17 |
先前网页的地址,当前请求网页紧随其后,即来路 | Referer: http://www.zcmhi.com/archives/71.html |
18 |
WEB软件名称 | Server: Apache/1.3.27 (Unix) (Red-Hat/Linux) |
19 |
文件传输编码 | Transfer-Encoding:chunked |
20 |
User-Agent的内容包含发出请求的用户信息 | User-Agent: Mozilla/5.0 (Linux; X11) |
21 |
表明客户端请求实体应该使用的授权方案 | WWW-Authenticate: Basic |
23 |
获取请求服务器地址 | http://www.abc.com?id=001 |
根据客户端及服务器的不同,需要的参数和参数值不同,用户可以通过WareShark等抓包工具获取需要设置的参数值。
(3)WizFi210作为HTTP客户端建立一个Socket的HTTP连接,然后连接到主机名称或IP地址所指定的服务器上(由于HTTP建立在TCP连接之上,因此可以用抓包工具WareShark等得到TCP连接建立的三次握手的数据包),令为:AT+HTTPOPEN=<host>,<Port Number>,<SSL Flag>。<host>为主机名称或IP地址;<Port Number>为HTTP服务器的监听端口,一般默认为80,可以通过:开始→cmd→netstat –a –n→回车,查询到HTTP服务器IP对应的端口号;<SSL Flag>为HTTPS标志位,这里用到HTTP,因此<SSL Flag>=0。例如:AT+HTTPOPEN= weibo.com,80,0。回复格式为:IP:xxx.xxx.xxx.xxx<cid>\r\n[OK]。IP即为HTTP服务器的IP地址,<cid>为Socket号。
(4)在HTTP连接上获取(GET)/上传(POST)HTTP数据
命令格式:AT+HTTPSEND=<cid>,<Type>,<Timeout>,<Page>,<Size of content>
紧接着,在Timeout时间之内输入:<ESC>H<cid><Contents>,无需回车。
其中,<cid>为前面获得的Socket号;<Type>为HTTP请求的方式:1为GET、3为POST;
<Timeout>为输入HTTP数据的等待时间;<Page>为URL中的页,HTTP的URL通常由HTTP:<host主机地址>[:<端口>]/<路径,页>;<参数>?<查询>组成;<Size of content>为传输数据的大小;<ESC>为转义字符,可以为“←”或者以16进制“1B 48 30”输入;<Contents>为实际传输的用户数据,例如:AT+HTTPSEND=0,1,10,/;AT+HTTPSEND=0,3,20,/。正确的回复格式为:[OK]\r\n←H0xxxx200 OK\r\n{…}\r\n[DISCONNECT 0] \r\n\r\n[OK],HTTP连接随之断开。
3、WizFi210 HTTP请求示例
下面以GET为例进行说明,POST只是将HTTPSEND的类型改为3,在此不做赘述。
AT+WD
[OK]
AT+WM=0
[OK]
AT+WWPA=12345678
[OK]
AT+NDHCP=1
[OK]
AT+WA=WIZnet
IP SubNet Gateway
192.168.1.120: 255.255.255.0: 192.168.1.1
[OK]
AT+HTTPCONF=20, Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
[OK]
AT+HTTPCONF=5,150
[OK]
AT+HTTPCONF=7,application/x-www-form-urlencoded
[OK]
AT+HTTPCONF=11, weibo.com
[OK]
AT+HTTPOPEN= weibo.com,80,0
IP: 180.149.134.1410
[OK]
AT+HTTPSEND=0,1,10, /u/2097310012/home?wvr=5,150
[OK]
←H0xxxx200 OK
{…}
[DISCONNECT 0]
[OK]
感谢阅读!
欢迎访问:
WIZnet官方网站:http://www.iwiznet.co.kr
WIZnet官方微博:http://weibo.com/wiznet2012
WIZnet微信公众号:iwiznet
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。