Get the http-request node got port working with Proxy

This commit is contained in:
Ben Hardill 2021-05-10 23:01:29 +01:00
parent e23f20227a
commit f6a3671366
No known key found for this signature in database
GPG Key ID: 74DD076979ABB1E7
1 changed files with 18 additions and 9 deletions

View File

@ -65,6 +65,7 @@ module.exports = function(RED) {
}
this.on("input",function(msg,nodeSend,nodeDone) {
redirectList=[];
var preRequestTimestamp = process.hrtime();
node.status({fill:"blue",shape:"dot",text:"httpin.status.requesting"});
var url = nodeUrl || msg.url;
@ -110,7 +111,7 @@ module.exports = function(RED) {
var opts = {};
// set defaultport, else when using HttpsProxyAgent, it's defaultPort of 443 will be used :(.
opts.defaultPort = isHttps?443:80;
//opts.defaultPort = isHttps?443:80;
opts.timeout = node.reqTimeout;
opts.method = method;
opts.headers = {};
@ -339,27 +340,35 @@ module.exports = function(RED) {
var match = prox.match(/^(https?:\/\/)?(.+)?:([0-9]+)?/i);
if (match) {
let proxyAgent;
let proxyURL = new URL(prox);
let proxyOptions = {
proxy: prox,
proxy: {
protocol: proxyURL.protocol,
hostname: proxyURL.hostname,
port: proxyURL.port,
username: null,
password: null
},
maxFreeSockets: 256,
maxSockets: 256,
keepAlive: true
keepAlive: false
}
if (proxyConfig && proxyConfig.credentials) {
// console.log("proxyConfig.creds", proxyConfig.credentials)
let proxyUsername = proxyConfig.credentials.username || '';
let proxyPassword = proxyConfig.credentials.password || '';
if (proxyUsername || proxyPassword) {
var m = /^(https?:\/\/)(.*)$/.exec(prox);
proxyOptions.proxy = `${m[1]}${proxyUsername}:${proxyPassword}@${m[2]}`
proxyOptions.proxy.username = proxyUsername;
proxyOptions.password = proxyPassword;
}
}
opts.agent = {};
if (/^http:/.test(url)) {
// if (/^http:/.test(url)) {
opts.agent.http = new HttpProxyAgent(proxyOptions)
} else {
// } else {
opts.agent.https = new HttpsProxyAgent(proxyOptions)
}
console.log("ProxyOptions:",proxyOptions);
// }
// console.log("ProxyOptions:",proxyOptions);
} else {
node.warn("Bad proxy url: "+ prox);
}