Cómo configurar un proxy para solicitudes https usando nodejs
var https = require('https');
var zlib = require('zlib'); p >
var post_data="....";
var post_data="... .............";//Solicitar datos< / p>
var reqdata = JSON.stringify(post_data);
var opciones = {
nombre de host: '10.225.***.***',
p>puerto: '8443',
Ruta: '/data/table/list',
Método: 'POST',
rechazarNo autorizado: falso,
requestCert: {
'nombre de usuario': 'admin',
'contraseña': '123456******* ***',
'Cookie': 'locale=zh_CN',
'X-BuildTime': '2015-01-01 20:04:11',
'Inicio de sesión automático': 4',
'Codificación de aceptación': 'gzip, deflate',
'X-Timeout': '3600000',
'Tipo de contenido': 'Aplicación/json',
"Longitud de contenido":reqdata.length": reqdata.
write(reqdata);
req.on('respuesta', función (respuesta) {
switch (response.headers['content-encoding']) {
caso 'gzip':
var body = '';
var gunzip = zlib.createGunzip();
respuesta.pipe(gunzip) ;
gunzip.on('datos', función (datos) {
cuerpo += datos;
});
gunzip.on('end', function () {
var returndatatojson= JSON.parse(body);
req.end();
} );
gunzip.on('error', función (e) {
console.log('error' + e. toString());
req.end();
});
break;
case 'deflate':
var salida = fs. createWriteStream("d:temp.txt");
respuesta.pipe(zlib.createInflate()).pipe(salida);
req.end();
romper;
default:req.end();
romper;
}
}});
req.on('error')(función (función))on('error', función (e) {
console.log(new Error('problema con la solicitud: ' + e. mensaje));
req.end();
setTimeout(cb, 10);
});
Nota: La longitud de los datos solicitados debe incluirse en las opciones. "Aceptar-Codificación" debe agregarse a las opciones: "gzip, deflate" Los datos devueltos deben determinar qué método de compresión se utiliza y luego descomprimirlos para obtenerlos. los datos. El returndatatojson en el evento final de gunzip son los datos obtenidos.