我在 Developer's Guide 中看不到这个答案,但也许我没有找对地方。
我想使用 Chrome 扩展程序拦截 HTTP 请求,然后转发它,可能使用新的/不同的 HTTP header - 我该怎么做?
最佳答案
PS: 我是这个扩展的 作者 所以你可以怪我任何你不喜欢的东西:)
当 OP 提出这个问题时,这当然是不可能的,但不久之后 Chrome 发布了实验性的 WebRequest API 。但现在它们已正式包含在 Chrome 扩展程序中。您可以使用它来修改 Chrome 中的请求和响应 header 。
看这个例子:
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return { requestHeaders: details.requestHeaders };
},
{urls: ['<all_urls>']},
['blocking', 'requestHeaders' /* , 'extraHeaders' */]
// uncomment 'extraHeaders' above in case of special headers since Chrome 72
// see https://developer.chrome.com/extensions/webRequest#life_cycle_footnote
);
如果你想使用 Chrome 扩展,你可以使用 Requestly,它允许你根据需要修改请求和响应头。看看这个快照:关于google-chrome - 我可以使用 Chrome 扩展程序修改传出请求 header 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3274144/