In einer asynchronen Hauptprozessfunktion mit einem vorhandenen Fenster fragst du die Session ab, die dieses Fenster tatsächlich verwendet:

const selectedSession = mainWindow.webContents.session;
const route = await selectedSession.resolveProxy('https://api.example/');

Die aktuelle API gibt ein Promise zurück, das zu einem String aufgelöst wird. Warte auf einen ausstehenden setProxy-Vorgang, bevor du eine Konfigurationsänderung untersuchst.

Das Ergebnis ist eine URL-spezifische Proxy-Entscheidung. Ein hypothetischer Wert könnte sein:

PROXY proxy-a.example:8080; PROXY proxy-b.example:8080; DIRECT

Das ist eine geordnete Kandidatenliste in PAC-Syntax, nicht ein einzelner Hostname. DIRECT steht ausdrücklich für einen direkten Kandidaten. Behandle ein leeres Ergebnis gesondert; behandle nicht stillschweigend jeden leeren oder unbekannten String als DIRECT.

Frage die tatsächliche Ziel-URL ab, denn PAC- und Bypass-Entscheidungen können je nach Ziel unterschiedlich ausfallen. Ebenso muss ein Fenster mit einer partitionierten Session nicht dieselbe Richtlinie wie session.defaultSession haben.

Die Proxy-Auflösung kann automatische Konfigurationsarbeit wie das Abrufen eines PAC-Skripts umfassen. Die zurückgegebene Auswahl ist dennoch keine abgeschlossene Anfrage an die Zielwebsite, kein erfolgreicher Proxy-Login und kein Nachweis ihrer öffentlichen Exit-IP. Behalte Session, URL und aufgelöste Kandidaten, wenn du sie mit dem Ergebnis der nachfolgenden Anfrage vergleichst.

Ähnliche Artikel