Я создаю приложение Electron, которое открывает браузер Windows.
Пользователи могут вводить список прокси в настройках, который сохраняется в JSON. Они также вводят ссылки по умолчанию, которые должны быть открыты в окне.
Я хочу, чтобы при открытии окна BrowserWindow предоставлялся случайный прокси.
Как мне добиться этого, проверяя, прошел ли пользователь user: pass? Если кто-то может помочь мне, это будет оценено. В настоящее время я получаю сообщение об ошибке
*
Uncaught (в обещании) Ошибка: (-111) загрузка 'https://kith.com/' в rejectAndCleanup (электрон /js2c/browser_init.js:5903) в WebContents.failListener (электрон / js2c / browser_init. js: 5913) в WebContents.emit (события. js: 203)
*
Мой код прикреплен к этому вопросу. Пожалуйста, нет токсичности, я просто учусь в старших классах. `
function initTask(site) {
const settings = JSON.parse(fs.readFileSync('potions/settings.json'));
const {
BrowserWindow
} = require('electron').remote;
let win = new BrowserWindow({
icon: 'mirrors/brand.png',
webPreferences: {
allowRunningInsecureContent: false,
enableRemoteModule: true,
webSecurity: false,
},
center: true,
show: true,
width: 800,
height: 600
})
var link = decodeURI(site);
const importProxies = JSON.parse(fs.readFileSync('potions/proxies.json'));
var randProxy = importProxies.proxies[Math.floor(Math.random() *
importProxies.proxies.length)];
this.proxyHostPort = getProxyHostPort(randProxy);
this.proxy = getProxyData(randProxy);
function getProxyData(proxy) {
if (proxy) {
const splitProxy = proxy.split(":");
const hostPort = `${splitProxy[0]}:${splitProxy[1]}`;
// # ONLY RETURN IF PROXY IS USER PASS
if (splitProxy.length > 2) {
return {
host: splitProxy[0],
port: splitProxy[1],
user: splitProxy[2],
pass: splitProxy[3]
};
}
// ELSE ITS IP AUTH
return {
host: splitProxy[0],
port: splitProxy[1]
};
}
}
function getProxyHostPort(proxy) {
if (proxy) {
const splitProxy = proxy.split(":");
const final = splitProxy[0] + ":" + splitProxy[1];
return final;
}
}
// # load using proxy or not
if (this.proxy) {
win.webContents.session.setProxy({
proxyRules: this.proxyHostPort
},
() => {}
);
// # LOGIN IF PROXY HAVE USER PASS
win.webContents.on(
"login",
(event, authenticationResponseDetails, authInfo, callback) => {
if (authInfo.isProxy) {
event.preventDefault();
// # FILL
callback(this.proxy.user, this.proxy.pass); //supply credentials to server
}
}
)
}
win.loadURL(link)
}