CoffeeScript HTTP 客戶端

2022-06-29 17:13 更新

HTTP 客戶端

問題

你想創(chuàng)建一個(gè)HTTP客戶端。

解決方案

在這個(gè)方法中,我們將使用node.js's HTTP庫。我們將從一個(gè)簡單的客戶端GET請求示例返回計(jì)算機(jī)的外部IP。

關(guān)于 GET

http = require 'http'

http.get { host: 'www.google.com' }, (res) ->
    console.log res.statusCode

get函數(shù),從node.js's http模塊,發(fā)出一個(gè)GET請求到一個(gè)http服務(wù)器。響應(yīng)是以回調(diào)的形式,我們可以在一個(gè)函數(shù)中處理。這個(gè)例子僅僅輸出響應(yīng)狀態(tài)代碼。檢查一下:

$ coffee http-client.coffee 
200

我的 IP 是什么?

如果你是在一個(gè)類似局域網(wǎng)的依賴于NAT的網(wǎng)絡(luò)中,你可能會(huì)面臨找出外部IP地址的問題。讓我們?yōu)檫@個(gè)問題寫一個(gè)小的coffeescript 。

http = require 'http'

http.get { host: 'checkip.dyndns.org' }, (res) ->
    data = ''
    res.on 'data', (chunk) ->
        data += chunk.toString()
    res.on 'end', () ->
        console.log data.match(/([0-9]+\.){3}[0-9]+/)[0]

我們可以從監(jiān)聽'data'事件的結(jié)果對象中得到數(shù)據(jù),知道它結(jié)束了一次'end'的觸發(fā)事件。當(dāng)這種情況發(fā)生時(shí),我們可以做一個(gè)簡單的正則表達(dá)式來匹配我們提取的IP地址。試一試:

$ coffee http-client.coffee 
123.123.123.123

討論

請注意http.get是http.request的快捷方式。后者允許您使用不同的方法發(fā)出HTTP請求,如POST或PUT。

在這個(gè)問題上的API和整體信息,檢查node.js's httphttps文檔頁面。此外,HTTP spec可能派上用場。

練習(xí)

  • 為鍵值存儲(chǔ)HTTP服務(wù)器創(chuàng)建一個(gè)客戶端,使用基本的HTTP服務(wù)器方法。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)