node项目使用http模块发送get-post请求方式
作者:-風过无痕
这篇文章主要介绍了node项目使用http模块发送get-post请求方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
前言
- http模块是node.js提供内置模块,可以用来发送请求
- 使用场景是本身这个node服务就是后端,调用第三方api或者其他服务使用http模块
- http模块和axios本质上是一个东西,看自己怎么选择使用
代码实现-不能直接复制-看注释
1.请求文件代码
// 导入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?参数=${"12"}&参数=${"12"}`, // 请求方式 method: "get", // 请求头信息 headers: { // 请求参数格式 "Content-Type": "application/json; charset=utf-8", // token Authorization: "", }, }; // 发送请求 const getlist = http.request(options, (res) => { res.on("data", (data) => { // 把返回值转换成utf-8格式 const list = Buffer.from(data).toString("utf8"); // 输出在控制台-json格式 process.stdout.write(list); // 转换数据 const getlist = JSON.parse(list); // 返回成功结果 resolve(getlist); }); }); // 错误处理 getlist.on("error", (err) => { // 返回失败结果 reject(err.message); }); // 请求参数-写入 getlist.write(postData); // 结束请求-不写请求发送不出去 getlist.end(); }) } // post-请求 - 分页查询 // 使用promise - 方便维护和管理 const requestpost = () => { return new Promise((resolve, reject) => { // 请求参数 let postData = querystring.stringify({ // 页码 // 页数 // 总数 // 参数 }); // 配置项 const options = { // 基地址 hostname: base_url, // 默认端口-不要改 port: 80, // 接口路径 path: "/api/ceshi/list", // 请求方式 method: "post", // 请求头信息 headers: { // 请求参数格式 "Content-Type": "application/json; charset=utf-8", // token Authorization: "", }, }; // 发送请求 const getpost = http.request(options, (res) => { res.on("data", (data) => { // 把返回值转换成utf-8格式 const list = Buffer.from(data).toString("utf8"); // 输出在控制台-json格式 process.stdout.write(list); // 转换数据 const getlist = JSON.parse(list); // 返回成功结果 resolve(getlist); }); }); // 错误处理 getpost.on("error", (err) => { // 返回失败结果 reject(err.message); }); // 请求参数-写入 getpost.write(postData); // 结束请求-不写请求发送不出去 getpost.end(); }); };
2.调用
const { requestget,requestpost } = require("文件位置"); async function getpostrequest (){ // get const res = await requestget () console.log("get请求结果", res); // post const ress = await requestpost () console.log("post请求结果", ress); }
细节
- 1.注意基地址配置不要带前缀-https:// 会报错
- 2.port 一般不用动
- 3.end()方法一定要写,不然请求可能会发不出去
- 4.不要直接复制这么多-按照注释请求成功在改
总结
经过这一趟流程下来相信你也对 node项目-使用http模块发送get-post请求 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。