Ich habe versucht, meiner Funktion Protokollanweisungen hinzuzufügen, und bin zu dem Schluss gekommen, dass es sich möglicherweise um einen handelt Einschränkung in der chrome.webRequest-API selbst.
Code: Select all
// Capture the request body before the request is sent
chrome.webRequest.onBeforeRequest.addListener(
(details) => {
if (isCapturing && ["POST", "PUT", "PATCH"].includes(details.method)) {
const requestBody = details.requestBody;
let rawBody = "";
console.log(Request details: ${JSON.stringify(details)}`);
`
if (requestBody) {
console.log(`Request body exists for ${details.method} request to ${details.url}`);
if (requestBody.raw && requestBody.raw.length) {
rawBody = String.fromCharCode.apply(
null,
new Uint8Array(requestBody.raw[0].bytes)
);
console.log(`Raw body extracted for ${details.method} request to ${details.url}`);
} else {
console.log(`Request body raw is empty for ${details.method} request to ${details.url}`);
}
} else {
console.log(`Request body is null for ${details.method} request to ${details.url}`);
}
const url = new URL(details.url);
const postmanUrl = {
raw: details.url,
protocol: url.protocol.replace(":", ""),
host: url.hostname.split("."),
path: url.pathname.split("/").filter(Boolean),
};
// Push the request with the body
capturedRequests.push({
name: details.url,
request: {
method: details.method,
header: [], // Will be added in onCompleted
body: rawBody,
},
});
}
},
{ urls: [""] },
["requestBody"] );
Ich habe die Header-Details protokolliert und habe herausgefunden, dass das Tag „requestBody“ in POST und nicht in PATCH verfügbar ist. Dies könnte bedeuten, dass es eine Einschränkung gibt. Ich muss wissen, ob es dafür eine bekannte Problemumgehung gibt.
Jede Hilfe wäre dankbar!