我在 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/

10-14 17:53
查看更多