如何使用无线模块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\nH0xxxx200
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

时间: 2024-10-15 15:41:00

如何使用无线模块WizFi210的HTTP功能?的相关文章

ZigBee模块的功能是什么 和433无线模块区别在哪里

ZigBee 是一种基于标准的远程监控.控制和传感器网络应用技术.为满足人们对支持低数据速率.低功耗.安全性和可靠性,而且经济高效的标准型无线网络解决方案的需求,ZigBee 标准应运而生.核心市场是消费类电子产品.能源管理和效率.医疗保健.家庭自动化.电信服务.楼宇自动化以及工业自动化. 什么是ZigBee模块: 围绕ZigBee芯片技术推出的外围电路,称之为"ZigBee模块",常见的ZigBee模块都是遵循IEEE802.15.4的国际标准,并且运行在2.4GHZ的频段上,另外,

CC1101 433无线模块,STM8串口透传

CC1101 433无线模块,STM8串口透传 原理图:http://download.csdn.net/detail/cp1300/7496509 下面是STM8程序 CC1101.C [cpp] view plaincopy /************************************************************************************************************* * 文件名: CC1101.c * 功能:  S

[51单片机] nRF24L01 无线模块 测试 按键-灯-远程控制

哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦.其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按动这4个不同的按键来发送4种不同的命令,来控制接收端(小的板)点亮4个不同的灯. >_<!首先是发送模块: 1 void main() 2 { 3 uchar Tx_Buf1[]={1}; //发送的信息1 4 uchar Rx_Buf[32]; //接收到的数据暂存器,最多32字节数据 5 i

[51单片机] nRF24L01 无线模块 串口法命令 通过无线控制另一个的灯

>_<!概述: 这是在上一个的基础上通过按键发送4种不同命令来控制接收端的LED灯亮的改进版(上一个:http://www.cnblogs.com/zjutlitao/p/3840013.html),这里俺把按键发命令给去掉,然后加入一个串口通信的功能,PC通过串口给发送端发送命令,然后发送端通过无线将命令发给接收端来实现控制,这里接收端和上一个例程中的一样,只是在发送端的代码里去除了按键控制,变成了串口控制. >_<!发送端电路: >_<!接收电路图: >_&l

51单片机对无线模块nRF24L01简单的控制收发程序

它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #define uchar unsigned char /***************************************************/ #define TX_ADR_WIDTH 5 // 5字节宽度的发送/接收地址 #define TX_PLOAD_WIDTH 4 // 数据通道有效数据宽度

nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)

俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经验,希望大家会少走弯路. Q:最近在选型的时候发现基本常见的无线模块都是3V供电,而我使用的单片机是5V的,它们之间要怎么连接呢?直接连接会不会损坏模块? 回答: 如果你使用的51单片机的P0口是高阻引脚,可以直接将无线模块的IO脚连接到P0端口,并在对应的连线与3V电源间放置1K~10K左右的偏置

无线模块数据加密,反码校验,发送字符串&quot;ABCDEFGHIJKLMNOP&quot; LED频闪

[原帖必看,不然你看不懂本帖] 单片机编码 无线模块发送与接收 程序 [说明]:                        [发送端]: LED亮灭跟随发送状态 发送字符串"ABCDEFGHIJKLMNOP" 发送过程,用"春哥"的GBK码对字符串异或运算加密 数据校验:采用反码校验,先发送源码,再发送反码,抗干扰 [接收端] 接收加密的源码,用"春哥"的GBK码对字符串异或运算解密,得到源码 接收反码,反码与源码比较 接收字符串 判断字符串

无线模块 RXB12-315m TXB12-315M 应用

最近有个产品用到这对模块,由于没有什么技术支持,就直接上机调试,测试结果为带障碍发射距离60米. 以下是应用的几个知识点: 1:编程操作,其实比较简单,调制信号315M是模块自带的,不需要调制和解调,我们只需控制自己的协议即可,我用的是红外发射的协议来控制. 2:发射位和接受位是相反的,即你发送一个1,接受的是0 3:天线 ,这个也重要,关系到发射的距离和稳定性,频率 15M,波长 20米,可以使用1/4波长(即天线长度等于1/4波长,315M对应23.8CM),具体波长 可以借用波长计算器,以

Arduino 与无线模块 CC1101

总结一下无线模块调试的体会.Arduino上已经有人做了这个模块的库了,但是自己根据手册写的也有一定的参考意义. 无线模块是我认为比较难调试的模块之一,因为是双方互动的一种模块,通信失败有两方面的原因,不能从单一代码中找.代码写好了,也将各种信息写进去了,但就是收不到或者接收不到数据.首先想到的是检查设备的连线.因为是SPI通信,所以使用的是mega2560自带的SPI通道口,查看上篇文章介绍. 除此之外CC1101有个GDO0 我连接在了板子上的48引脚. 确认连线. 其次就是测试SPI是否正