码迷,mamicode.com
首页 > Web开发 > 详细

nodejs发起HTTPS请求并获取数据

时间:2015-12-04 22:54:29      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

var https = require(‘https‘);
var zlib = require(‘zlib‘);

var post_data="………………";//请求数据 var reqdata = JSON.stringify(post_data); var options = { hostname: ‘10.225.***.***‘, port: ‘8443‘, path: ‘/data/table/list‘, method: ‘POST‘, rejectUnauthorized: false, requestCert: true, auth: ‘admin:7584FD2E************‘, headers: { ‘username‘: ‘admin‘, ‘password‘: ‘7584FD2E************‘, ‘Cookie‘: ‘locale=zh_CN‘, ‘X-BuildTime‘: ‘2015-01-01 20:04:11‘, ‘Autologin‘: ‘4‘, ‘Accept-Encoding‘: ‘gzip, deflate‘, ‘X-Timeout‘: ‘3600000‘, ‘Content-Type‘: ‘Application/json‘, "Content-Length":reqdata.length } }; var req = https.request(options, function (res) { }); req.write(reqdata); req.on(‘response‘, function (response) { switch (response.headers[‘content-encoding‘]) { case ‘gzip‘: var body = ‘‘; var gunzip = zlib.createGunzip(); response.pipe(gunzip); gunzip.on(‘data‘, function (data) { body += data; }); gunzip.on(‘end‘, function () { var returndatatojson= JSON.parse(body); req.end(); }); gunzip.on(‘error‘, function (e) { console.log(‘error‘ + e.toString()); req.end(); }); break; case ‘deflate‘: var output = fs.createWriteStream("d:temp.txt"); response.pipe(zlib.createInflate()).pipe(output); req.end(); break; default:req.end(); break; } }); req.on(‘error‘, function (e) { console.log(new Error(‘problem with request: ‘ + e.message)); req.end(); setTimeout(cb, 10); });


//以上是nodejs中通过https请求获取数据的全过程。注意,options,需要有请求数据的长度,options需要加上‘Accept-Encoding‘: ‘gzip, deflate‘,返回的数据需要判断是哪种压缩方式,然后解压缩获取到数据。gunzip的end事件里的returndatatojson即是获取的数据.

nodejs发起HTTPS请求并获取数据

标签:

原文地址:http://www.cnblogs.com/wonglu/p/5018351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!