node項目使用http模塊發(fā)送get-post請求方式
更新時間:2024年09月06日 13:39:39 作者:-風(fēng)過無痕
這篇文章主要介紹了node項目使用http模塊發(fā)送get-post請求方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
前言
- http模塊是node.js提供內(nèi)置模塊,可以用來發(fā)送請求
- 使用場景是本身這個node服務(wù)就是后端,調(diào)用第三方api或者其他服務(wù)使用http模塊
- http模塊和axios本質(zhì)上是一個東西,看自己怎么選擇使用
代碼實現(xiàn)-不能直接復(fù)制-看注釋
1.請求文件代碼
// 導(dǎo)入http模塊 const http = require("http"); // 注意基地址 // let base_url = "https://ceshi.com" // 基地址-去掉https://前綴 - 不去會報錯 let base_url = "ceshi.com" // get-請求 - 獲取 // 使用promise - 方便維護和管理 const requestget = () => { return new Promise((resolve, reject) => { // 配置項 const options = { // 基地址 hostname: base_url, // 默認端口-不要改 port: 80, // 接口路徑 path: `/api/ceshi/list?參數(shù)=${"12"}&參數(shù)=${"12"}`, // 請求方式 method: "get", // 請求頭信息 headers: { // 請求參數(shù)格式 "Content-Type": "application/json; charset=utf-8", // token Authorization: "", }, }; // 發(fā)送請求 const getlist = http.request(options, (res) => { res.on("data", (data) => { // 把返回值轉(zhuǎn)換成utf-8格式 const list = Buffer.from(data).toString("utf8"); // 輸出在控制臺-json格式 process.stdout.write(list); // 轉(zhuǎn)換數(shù)據(jù) const getlist = JSON.parse(list); // 返回成功結(jié)果 resolve(getlist); }); }); // 錯誤處理 getlist.on("error", (err) => { // 返回失敗結(jié)果 reject(err.message); }); // 請求參數(shù)-寫入 getlist.write(postData); // 結(jié)束請求-不寫請求發(fā)送不出去 getlist.end(); }) } // post-請求 - 分頁查詢 // 使用promise - 方便維護和管理 const requestpost = () => { return new Promise((resolve, reject) => { // 請求參數(shù) let postData = querystring.stringify({ // 頁碼 // 頁數(shù) // 總數(shù) // 參數(shù) }); // 配置項 const options = { // 基地址 hostname: base_url, // 默認端口-不要改 port: 80, // 接口路徑 path: "/api/ceshi/list", // 請求方式 method: "post", // 請求頭信息 headers: { // 請求參數(shù)格式 "Content-Type": "application/json; charset=utf-8", // token Authorization: "", }, }; // 發(fā)送請求 const getpost = http.request(options, (res) => { res.on("data", (data) => { // 把返回值轉(zhuǎn)換成utf-8格式 const list = Buffer.from(data).toString("utf8"); // 輸出在控制臺-json格式 process.stdout.write(list); // 轉(zhuǎn)換數(shù)據(jù) const getlist = JSON.parse(list); // 返回成功結(jié)果 resolve(getlist); }); }); // 錯誤處理 getpost.on("error", (err) => { // 返回失敗結(jié)果 reject(err.message); }); // 請求參數(shù)-寫入 getpost.write(postData); // 結(jié)束請求-不寫請求發(fā)送不出去 getpost.end(); }); };
2.調(diào)用
const { requestget,requestpost } = require("文件位置"); async function getpostrequest (){ // get const res = await requestget () console.log("get請求結(jié)果", res); // post const ress = await requestpost () console.log("post請求結(jié)果", ress); }
細節(jié)
- 1.注意基地址配置不要帶前綴-https:// 會報錯
- 2.port 一般不用動
- 3.end()方法一定要寫,不然請求可能會發(fā)不出去
- 4.不要直接復(fù)制這么多-按照注釋請求成功在改
總結(jié)
經(jīng)過這一趟流程下來相信你也對 node項目-使用http模塊發(fā)送get-post請求 有了初步的深刻印象,但在實際開發(fā)中我 們遇到的情況肯定是不一樣的,所以我們要理解它的原理,萬變不離其宗。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Express+Node.js對mysql進行增改查操作?
這篇文章主要介紹了使用Express+Node.js對mysql進行增改查操作,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08node.js實現(xiàn)pdf與圖片互轉(zhuǎn)代碼示例
因工作需求,記錄一次如何在Node中pdf與圖片互轉(zhuǎn)各種操作,這篇文章主要給大家介紹了關(guān)于node.js實現(xiàn)pdf與圖片互轉(zhuǎn)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-04-04node.js實現(xiàn)復(fù)制文本到剪切板的功能
這篇文章主要給大家介紹了node.js實現(xiàn)復(fù)制文本到剪切板的功能,文中介紹的非常詳細,并給出示例代碼,相信對大家具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。2017-01-01詳解Node.js中exports和module.exports的區(qū)別
這篇文章主要介紹了詳解Node.js中exports和module.exports的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04nodejs的HTML分析利器node-jquery用法淺析
這篇文章主要介紹了nodejs的HTML分析利器node-jquery用法,簡單分析了node-jquery的功能并結(jié)合實例說明了node-jquery控制臺輸出信息的操作技巧,需要的朋友可以參考下2016-11-11