SIM900A訪問HTTP的簡單方法

2021-07-24 07:54:13 字數 1676 閱讀 2569

某天,突然想,sim900a能不能訪問網頁呢?如果能,直接把資料通過網頁提交上去不就更簡單了嘛。

於是乎,果斷諮詢賣家,得到的答覆是「理論上可行,但是沒測試過」。

1、要訪問網頁,總得先上網咖。

那手機是怎麼上網的呢?開啟「資料連線」就行了吧。恩。可是手機怎麼知道怎麼接入網路呢?想起當年用hero的時候,無數次設定apn,如下圖。

看明白了嗎?手機中有預設的網路接入點,當開啟「資料連線」的時候,手機會接入指定的接入點。那麼,再回過頭來看at+sapbr指令的引數,原來如此。那我們執行如下的at指令:

(1)at+sapbr=3,1,"apn","cmnet":這條指令設定接入點名稱(第4張圖第二行)。

(2)at+sapbr=3,1,"phonenum","12345678900":設定**號碼。

其它的引數不用這是了吧,因為第4張圖上也沒有設定。

(3)at+sapbr=4,1:查詢引數設定。

(4)at+sapbr=5,1:將本次的引數設定儲存到ram,下次就不用設定了,直接開啟就行。

4條指令中,那個「1」是什麼意思?其實,我也沒搞的很清楚,就算是個標識吧。

(5)at+sapbr=1,1:開啟承載,我的理解是你開啟了「資料連線」。

好了,現在我已經接入網路了(返回的第2個引數是1表示已經連線),我的ip位址是「10.129.8.149」(第3個引數)。

2、沒有uc,我咋訪問網頁呢?

慢慢來。先看看「第10章http應用at指令」,一共7條指令。基本思路就是先初始化,然後設定引數,啟用http,等到相應,然後再讀返回的資料,最後關閉。下面,我要訪問我們學院的**了:

(1)at+httpinit:初始化http。

(2)at+httppara="cid","1":設定承載上下文標識,和上面一致。

其它的引數我們暫且不去設定。

(4)at+httpaction=0:啟用http請求,0表示get方式、1表示post方式、2表示head(這個不知道啥意思)。

這個時候要耐心等,在ok之後會返回http的狀態。我的狀態如下:

看到「200」了嗎?這說明訪問成功了。那個「0」表示你的訪問方式,剛才我們用get去訪問的。那最後的那個「30188」是什麼呢?恩,它是datalen,也就是用位元組表示的網頁的內容的長度。

好吧,那怎麼獲取網頁的內容呢?at+httpread指令現在登場。

(5)at+httpread=1,30188:讀取http相應資料。1表示從第乙個位元組開始讀,讀30188個位元組。

如果我們操作正確、且我們知道html是什麼的話,我們會驚訝的發現,網頁的內容被讀出來了。哈哈哈哈!

(6)at+httpterm:訪問完了,記得終止http服務啊。

(7)at+sapbr=0,1:最後別忘記關閉承載。

ok,這樣,我們就實現了sim900a通過get方式訪問網頁的問題。

當然,這是非常簡單的操作。我們肯定會遇到這樣那樣的問題,比如:

(1)at+httpread指令最多能讀出102400位元組的資料,那如果某個網頁返回的資料量超過了102400該怎麼辦?

(2)怎麼通過post方式提交資料?

SIM900A英文簡訊的讀取與傳送

一 英文簡訊的傳送 一般分為五步進行簡訊的傳送 1 我們用到at cscs指令來設定te字符集,預設的為gsm7位預設字符集,在傳送英文簡訊時,需要傳送 at cscs gsm 設定為預設字符集即可。2 用指令at cmgf來設定短訊息模式,即為文字模式 text 還是pdu模式,這裡我們傳送at ...

SIM900的USSD測試小程式

關鍵 如下 enum status int main int argc,char argv char interactbuff 50 char outbuff 1024 enum status status ussdstart int fd open dev ttys0 o rdwr o nonbl...

sim900 一些有用的指令

at cmgl指令 讀取指定儲存型別的簡訊 rec unread 或者rec read等 注意pdu和文字傳送方式下命令引數的區別。at cmgl rec unread r n 該命令用於讀取sim卡中接收但未讀的簡訊,讀完後簡訊的儲存型別變為 rec read 響應 cmgl 5,rec unre...