From 94b2352438c01cf98865c35f3b9d56a23aaf53d0 Mon Sep 17 00:00:00 2001 From: mzabriskie Date: Sun, 21 Sep 2014 16:18:08 -0600 Subject: [PATCH] Adding SSL support for node.js - #12 --- lib/adapters/http.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 1fc8d91..1126c2c 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -3,7 +3,9 @@ var defaults = require('./../defaults'); var transformData = require('./../transformData'); var utils = require('./../utils'); var http = require('http'); +var https = require('https'); var url = require('url'); +var pkg = require('./../../package.json'); var Buffer = require('buffer').Buffer; module.exports = function httpAdapter(resolve, reject, config) { @@ -21,6 +23,9 @@ module.exports = function httpAdapter(resolve, reject, config) { config.headers || {} ); + // Set User-Agent (required by some servers) + headers['User-Agent'] = 'node-axios/' + pkg.version; + if (data) { if (utils.isArrayBuffer(data)) { data = new Buffer(new Uint8Array(data)); @@ -29,6 +34,7 @@ module.exports = function httpAdapter(resolve, reject, config) { } else { return reject(new Error('Data after transformation must be a string or an ArrayBuffer')); } + // Add Content-Length header if data exists headers['Content-Length'] = data.length; } @@ -44,7 +50,8 @@ module.exports = function httpAdapter(resolve, reject, config) { }; // Create the request - var req = http.request(options, function (res) { + var transport = parsed.protocol === 'https:' ? https : http; + var req = transport.request(options, function (res) { var responseText = ''; res.on('data', function (chunk) { responseText += chunk; -- GitLab