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

时间:2023-03-09 13:42:43
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 = ;
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:'',
str2:''
}
var postData = querystring.stringify(reqData);
var opts = {
method:'POST',
host:'www.test.com',
port:'',
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 = ;
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);