node中https请求 | 实现https的请求,获取图片,然后转成base64字节码

Posted 刘金宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node中https请求 | 实现https的请求,获取图片,然后转成base64字节码相关的知识,希望对你有一定的参考价值。

get请求 

下面实现https的请求,获取图片,然后转成base64字节码

this.checkCodeUrl = https://www.test.com/kaptcha.jsp;
var https = require(https);
https.get(this.checkCodeUrl,function(res){
        var datas = [];
        var size = 0;
        res.on(data, function(data){
            datas.push(data);
            size += data.length;
        })
        res.on(end, function(data){
            var buff = Buffer.concat(datas, size);
            var pic = buff.toString(base64);
            callback({success:true, data:pic});
        })
    }).on(error,function(err){
        console.log(获取验证码异常,异常原因+err);
        callback({success:false, msg:获取验证码失败});
    })

2 post请求 
我这里因为返回的字符是gbk,所以做了对应处理。

var https = require(https);
var iconv = require(iconv-lite);
var querystring = require("querystring");
var reqData = {
            str1:11,
            str2:22
        }
        var postData = querystring.stringify(reqData);
        var opts = {
            method:POST,
            host:www.test.com,
            port:443,
            path:/api/test,
            headers:{
                Content-Type:application/x-www-form-urlencoded,
                Content-Length:postData.length
            }
        }
        var req = https.request(opts,function(res){
            var datas = [];
            var size = 0;
            res.on(data,function(data){
                datas.push(data);
                size += data.length;
            })
            res.on(end, function(){
                var buff = Buffer.concat(datas, size);
                var str = iconv.decode(buff,gbk);
                callback({success:true, data:str});
            })
        })
        req.on(error,function(err){
            console.log(异常,异常原因+err);
            callback({success:false, msg:失败});
        })
        req.write(postData);

 

以上是关于node中https请求 | 实现https的请求,获取图片,然后转成base64字节码的主要内容,如果未能解决你的问题,请参考以下文章

使用axios方式实现Ajax请求

如何在Node.js中从简单的HTTPS请求构造和提取值?

Node js中向rest服务发送https请求的步骤

Node js中向rest服务发送https请求的步骤

使用HTTPS GET请求的结果[Node.js] [重复]

如何从 Angular 6 向 node.js 发送 https 请求