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远程下载的资料请关注脚本之家其它相关文章!