diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 73dc26e..d6908b3 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -55,6 +55,8 @@ module.exports = function httpAdapter(config) { // Parse url var parsed = url.parse(config.url); + var protocol = parsed.protocol || 'http:'; + if (!auth && parsed.auth) { var urlAuth = parsed.auth.split(':'); var urlUsername = urlAuth[0] || ''; @@ -66,7 +68,7 @@ module.exports = function httpAdapter(config) { delete headers.Authorization; } - var isHttps = parsed.protocol === 'https:'; + var isHttps = protocol === 'https:'; var agent = isHttps ? config.httpsAgent : config.httpAgent; var options = { @@ -81,7 +83,7 @@ module.exports = function httpAdapter(config) { var proxy = config.proxy; if (!proxy) { - var proxyEnv = parsed.protocol.slice(0, -1) + '_proxy'; + var proxyEnv = protocol.slice(0, -1) + '_proxy'; var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; if (proxyUrl) { var parsedProxyUrl = url.parse(proxyUrl); @@ -97,7 +99,7 @@ module.exports = function httpAdapter(config) { options.hostname = proxy.host; options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : ''); options.port = proxy.port; - options.path = parsed.protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path; + options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path; } var transport;