node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > nodejs http https远程下载

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

您可能感兴趣的文章:
阅读全文