Dans une fonction asynchrone du processus principal avec une fenêtre existante, interrogez la session que la fenêtre utilise réellement :

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

L'API actuelle renvoie une Promise qui se résout en une chaîne. Attendez une opération setProxy en attente avant d'examiner un changement de configuration.

Le résultat est une décision de proxy propre à l'URL. Une valeur hypothétique pourrait être :

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

Il s'agit d'une liste ordonnée de candidats en syntaxe de style PAC, et non d'un seul nom d'hôte. DIRECT représente explicitement un candidat direct. Traitez un résultat vide séparément ; ne considérez pas silencieusement toute chaîne vide ou non reconnue comme DIRECT.

Interrogez l'URL cible réelle, car les décisions PAC et de contournement peuvent varier selon la destination. De même, une fenêtre utilisant une session partitionnée n'a pas forcément la même politique que session.defaultSession.

La résolution du proxy peut impliquer un travail de configuration automatique, comme l'obtention d'un script PAC. Le choix renvoyé n'est toujours pas une requête aboutie vers le site cible, ni une connexion proxy réussie, ni une preuve de son IP de sortie publique. Conservez la session, l'URL et les candidats résolus lorsque vous les comparez au résultat de la requête suivante.

Articles similaires