19辙喂、nodeMCU學(xué)習(xí)筆記--http模塊

閑言碎語

好久沒發(fā)文章了捶牢,因?yàn)楹孟衲苣脕硭恼碌哪K都用完了。后來有簡友提到http模塊巍耗,翻了先前的文章發(fā)現(xiàn)居然把http模塊忘記了秋麸,囧。

另外芍锦,需要說的是竹勉,這個(gè)模塊還涉及到HTTP的一些知識點(diǎn),但是本人也不是特別了解娄琉。有些地方可能說的不是特別準(zhǔn)確次乓。本文還是針對模塊自身如何使用來說。

同時(shí)文檔中提到了孽水,由于內(nèi)存限制票腰,如果訪問一些大文件頁面,將會failed女气。另外杏慰,也不能同時(shí)發(fā)起請求。所以,我個(gè)人覺得缘滥,這個(gè)模塊比較合適用在訪問服務(wù)端的數(shù)據(jù)API轰胁。

模塊函數(shù)

模塊的函數(shù)很少,就只有5個(gè)朝扼。一起來看一下~

|序號|函數(shù)名|參數(shù)|返回值|
|:--|:--:|:---:|:--:|--:|
|1|http.delete()|url, headers, body, callback|nil|
|2|http.get()|url, headers, callback|nil|
|3|http.post()|url, headers, body, callback|nil|
|4|http.put()|url, headers, body, callback|nil|
|5|http.request()|url, method, headers, body, callback|nil|
這幾個(gè)函數(shù)的參數(shù)都差不多赃阀,同時(shí)返回值都為nil。因?yàn)檎埱蟮慕Y(jié)果是通過回調(diào)的形式來進(jìn)行的擎颖¢凰梗回調(diào)函數(shù)接收三個(gè)參數(shù),分別是status_code搂捧、body驮俗、headers(似乎沒有這個(gè)參數(shù))。前4個(gè)函數(shù)對應(yīng)了一種http(s)請求允跑。最后一個(gè)則可以變換成任何一種http(s)請求王凑。

url表示請求地址的字符串,需要以http或者h(yuǎn)ttps開頭吮蛹,比如http://www.reibang.com 荤崇。

headers表示請求頭,可以是自定義的頭潮针,也可以是重寫標(biāo)準(zhǔn)的頭术荤。當(dāng)參數(shù)為nil的時(shí)候,傳入默認(rèn)的頭每篷,不同請求瓣戚,默認(rèn)值不同。get請求的默認(rèn)頭焦读,格式如下:

  host: '192.168.199.202:3000',
  connection: 'close',
  'user-agent': 'ESP8266' 
}```
connection 這個(gè)只能是close子库!重寫的時(shí)候別寫成其他的。

body矗晃,要發(fā)送出去的數(shù)據(jù)放在這個(gè)參數(shù)中仑嗅。

關(guān)于前4個(gè)請求是什么意思,我一陣胡亂百度后张症,大概可以這樣用仓技。GET請求用來請求服務(wù)器上的數(shù)據(jù)。POST請求則是用來請求修改服務(wù)器上的某個(gè)數(shù)據(jù)俗他。PUT請求用來增加數(shù)據(jù)脖捻。DELETE請求則是刪除某個(gè)數(shù)據(jù)。但是兆衅,通常使用前兩個(gè)來進(jìn)行增刪改查地沮。

## 實(shí)踐一下
這里直接拷貝文檔中的幾個(gè)例子嗜浮,來看看這5個(gè)函數(shù)有什么效果。首先是GET摩疑,

http.get("http://httpbin.org/ip", nil, function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)

這個(gè)例子里危融,回調(diào)函數(shù)的data傳入了一個(gè)帶ip地址的json。也就是通過GET請求未荒,服務(wù)器返回一個(gè)ip數(shù)據(jù)专挪。

接著看看POST請求及志。這里例子里片排,重寫了請求頭。注意速侈,請求頭需要用\r\n來做換行率寡。至于,請求頭都有些什么參數(shù)倚搬,還請自行百度~

http.post('http://httpbin.org/post',
'Content-Type: application/json\r\n',
'{"hello":"world"}',
function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)


再來看看DELETE和PUT冶共,直接貼代碼好了

http.delete('http://httpbin.org/delete',
"",
"",
function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)

http.put('http://httpbin.org/put',
'Content-Type: text/plain\r\n',
'Hello!\nStay a while, and listen...\n',
function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)

用法都是大同小異的。最后來看一下每界,request這個(gè)函數(shù)捅僵。可以用來執(zhí)行一個(gè)自定義的http請求或者是任何一個(gè)http中已有的請求眨层,比如HEAD庙楚,OPTIONS。這里來看一下如何使用request來發(fā)起一個(gè)GET請求趴樱。

http.request("http://httpbin.org/ip", "GET", "", "",
function(code, data)
if (code < 0) then
print("HTTP request failed")
else
print(code, data)
end
end)

很簡單馒闷,第二個(gè)參數(shù)傳入GET方法的字符串即可。這時(shí)候request就相當(dāng)于**.get**這個(gè)函數(shù)了叁征。

## 多說兩句
上面的例子離實(shí)際應(yīng)用還是比較遠(yuǎn)纳账,后面如果有應(yīng)用再做補(bǔ)充。個(gè)人覺得捺疼,應(yīng)用的重點(diǎn)還是在于GET和PUST疏虫,用來想服務(wù)器請求某個(gè)數(shù)據(jù)或者向服務(wù)器推送某個(gè)數(shù)據(jù),比如ADC讀到的溫度值之類的啤呼。

如果有簡友對這個(gè)模塊了解的話卧秘,請別忘記留言分享。


> 簡書評論不能貼圖, 如有需要可以到我的GitHub上提[issues](https://github.com/hanfengcan/nodemcu-just4fun/issues)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末媳友,一起剝皮案震驚了整個(gè)濱河市斯议,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌醇锚,老刑警劉巖哼御,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坯临,死亡現(xiàn)場離奇詭異,居然都是意外死亡恋昼,警方通過查閱死者的電腦和手機(jī)看靠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來液肌,“玉大人挟炬,你說我怎么就攤上這事∴露撸” “怎么了谤祖?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長老速。 經(jīng)常有香客問我粥喜,道長,這世上最難降的妖魔是什么橘券? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任额湘,我火速辦了婚禮,結(jié)果婚禮上旁舰,老公的妹妹穿的比我還像新娘锋华。我一直安慰自己,他們只是感情好箭窜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布毯焕。 她就那樣靜靜地躺著,像睡著了一般绽快。 火紅的嫁衣襯著肌膚如雪芥丧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天坊罢,我揣著相機(jī)與錄音续担,去河邊找鬼。 笑死活孩,一個(gè)胖子當(dāng)著我的面吹牛物遇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播憾儒,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼询兴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了起趾?” 一聲冷哼從身側(cè)響起诗舰,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎训裆,沒想到半個(gè)月后眶根,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜀铲,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年属百,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了记劝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡族扰,死狀恐怖厌丑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渔呵,我是刑警寧澤怒竿,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站厘肮,受9級特大地震影響愧口,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜类茂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望托嚣。 院中可真熱鬧巩检,春花似錦、人聲如沸示启。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夫嗓。三九已至迟螺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舍咖,已是汗流浹背矩父。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留排霉,地道東北人窍株。 一個(gè)月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像攻柠,于是被迫代替她去往敵國和親球订。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容