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部分沒有資料部分返回。