如何使用無線模塊WizFi210的HTTP功能?

wizfi210點擊了解:無線模塊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