javascript - Electron - Hente HTTP-responsoverskrifter fra BrowserWindow sin loadUrl()
Jeg jobber med et testprosjekt som er hostet på en PC inkludert i et SSO-miljø. Jeg peker faktisk på en nettside som er hostet på en server inne i dette miljøet, og jeg trenger å få tilgang til informasjonskapslene (har nettopp fått dem) og HTTP-headerne til forespørselen. Jeg har studert dokumentasjonen, og det ser ut til at det ikke finnes en callback-funksjon for loadUrl()-metoden, heller ikke et alternativ jeg kan bruke for å få disse headerne.
lenke for referansen
https://electronjs.org/docs/api/browser-window
loadUrl har en andre valgfri parameter som er definert som en Electron.loadURLOption, men den ser ikke ut til å være nyttig
interface LoadURLOptions {
/**
* An HTTP Referrer url.
*/
httpReferrer?: (string) | (Referrer);
/**
* A user agent originating the request.
*/
userAgent?: string;
/**
* Extra headers separated by "\n"
*/
extraHeaders?: string;
postData?: (UploadRawData[]) | (UploadFile[]) | (UploadBlob[]);
/**
* Base url (with trailing path separator) for files to be loaded by the data url.
* This is needed only if the specified url is a data url and needs to load other
* files.
*/
baseURLForDataURL?: string;
}
Jeg vil sette pris på enhver form for hjelp, takk
Svar #1
Du kan oppnå dette ved å registrere en lytter for onCompleted eller onHeadersReceived-tilbakekallingen til webkontekstsessions webRequest-egenskap, f.eks:
const url = 'https://example.com/your/page';
browserWindow.webContents.session.webRequest.onCompleted({ urls: [url] }, (details) => {
// Access request headers via details.requestHeaders
// Access response headers via details.responseHeaders
});
browserWindow.loadURL(url);
onHeadersReceived er litt mer komplisert da det krever å påkalle den sendte callbacken for å fortsette sideinnlastingsprosessen.
Relatert dokumentasjon
