創(chuàng)建HTTP請(qǐng)求使現(xiàn)代編程語言的核心功能之一,也是很多程序員在接觸到新的開發(fā)環(huán)境時(shí)最先遇到的技術(shù)之一。在Node.js中有相當(dāng)多的解決方案,其中有語言內(nèi)置功能,也有開源社區(qū)貢獻(xiàn)的開發(fā)庫。下面咱們來看一下比較流行的幾種方式。
創(chuàng)新互聯(lián)建站專注骨干網(wǎng)絡(luò)服務(wù)器租用10余年,服務(wù)更有保障!服務(wù)器租用,鄭州服務(wù)器托管 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。在開始之前,請(qǐng)先在自己的計(jì)算機(jī)上安裝最新版的node.js和npm。
HTTP - 標(biāo)準(zhǔn)庫
首先是標(biāo)準(zhǔn)庫中默認(rèn)的 HTTP 模塊。這個(gè)模塊無需安裝依賴外部即可使用,做到了真正的即插即用。缺點(diǎn)是與其他解決方案相比,用起來不是那么友好。
下面的代碼將向NASA的API發(fā)送一個(gè) GET 請(qǐng)求,并輸出當(dāng)天的天文照片的URL,以及它的注解:
const https = require('https'); https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', (resp) => { let data = ''; // A chunk of data has been recieved. resp.on('data', (chunk) => { data += chunk; }); // The whole response has been received. Print out the result. resp.on('end', () => { console.log(JSON.parse(data).explanation); }); }).on("error", (err) => { console.log("Error: " + err.message); });