nodejs的http和https下载远程资源post数据实例
投稿:ychy
这篇文章主要为大家介绍了nodejs的http和https下载远程资源post数据实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
nodejs下载资源
经常用到nodejs下载资源的情况(简单的爬虫),可以考虑直接使用nodejs内置的http/https模块。

test.mjs
import https from 'https'
import fs from 'fs'
import URL from 'url'
let urlObj = URL.parse(url)
https.get({
...urlObj,
rejectUnauthorized: false, // 忽略https安全性
method: 'GET', // 请求方式
headers: {
referer: '', // 如果资源有防盗链,则清空该属性
},
}, res => {
//设置编码格式
res.setEncoding('binary');
let img = ''
res.on('data', chunk => {
img += chunk
})
res.on('end', chunk => {
// 写到本地,(文件名,源文件,编码格式)
fs.writeFileSync('./test.jpg', img, "binary");
})
})post数据
import http from 'http'
import URL from 'url'
async function post(url, dataStr) {
let urlObj = URL.parse(url)
return new Promise((resolve) => {
const req = http.request({
...urlObj,
method: 'POST', // 请求方式
headers: {
'Content-Length': dataStr.length, // post必须填写大小
'Content-type': 'application/x-www-form-urlencoded', // 编码格式
referer: url, // 如果资源有防盗链,则清空该属性
},
}, res => {
//设置编码格式
// res.setEncoding('binary');
let data = ''
res.on('data', chunk => {
data += chunk
})
res.on('end', chunk => {
resolve(data)
})
})
// 发送数据
req.write(dataStr);
req.end();
})
}以上就是nodejs的http和https下载远程资源post数据实例的详细内容,更多关于nodejs http https远程下载的资料请关注脚本之家其它相关文章!
