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

Relaterte artikler