Node.js使用axios进行web接口调用
版权声明:本文为砷碲原创文章,未经允许,禁止转载本文链接:https://sdpro.top/blog/html/article/1094.html
专栏收录该内容
Hi I'm Shendi
在 Node.js 中,自带的 http/https模块不是很好用,于是我去尝试能不能使用ajax,发现node.js是不支持xhr的,没有 XMLHttpRequest 对象,最后选择了 axios。
安装依赖
npm install axios
安装完后,在代码内可以引入 axios 模块
使用
axios 是基于 Promise 的
关于 Promise,可以查阅我写的另一篇文章:https://sdpro.top/blog/html/article/1034.html
示例如下
const axios = require('axios');
// 这里爬百度,请求头的host,user-agent, accept是必须,不然百度就给你拦截了
axios({
url: `https://www.baidu.com/s`,
method: 'get',
params : {
"wd" : "砷碲博客"
},
headers : {
"Host" : "www.baidu.com",
"User-Agent" : "Mozilla/5.0 Chrome/114.0.0.0",
"Accept" : "text/html,application/xhtml+xml,application/xml;"
}
}).then((res) => {
console.log(`响应数据:${res.data}`);
}).catch((res) => {
console.log(`请求出错:${res}`);
});
执行效果如下
上面的示例中
- url 请求地址
- method 请求类型
- params 请求参数,如果是POST请求应为 data
- headers 请求头
res 参数中常用的有
- status(响应状态码,例如200)
- headers(响应头列表)
- data(响应数据,如果是JSON则自动转JSON)
而 then 与 catch 是 Promise 部分了,成功执行后触发then,失败触发catch
上面的使用基本上可以满足大部分需求了,还可以像下面这样使用
axios.get("http://www.baidu.com").then(() => {});
axios.post("http://www.baidu.com").then(() => {});
// ...
END
本文链接:https://sdpro.top/blog/html/article/1094.html♥ 赞助 ♥
尽管去做,或许最终的结果不尽人意,但你不付出,他不付出,那怎会进步呢?