如何访问 Firefox 附加 SDK 中 onHttpRequest 函数中给出的数据

How do I access the data given in the onHttpRequest function in the Firefox Add-on SDK?

本文关键字:函数 onHttpRequest 数据 SDK 附加 何访问 访问 Firefox      更新时间:2023-09-26

我正在尝试读取响应标头"名称"和"值"。最终目标是将它们与一些预设的名称和值进行比较,以查看它们是否匹配。

这是我到目前为止所拥有的,它是每次我获得响应标头时运行的函数。

var observer = require("observer-service");
observer.add("http-on-examine-response", onHttpRequest);
function onHttpRequest(subject, data)
{
  console.log("request subject...." + subject);
  console.log("request data...." + data);
}

输出如下:

请求主题....[xpconnect wraped nsISupports]请求数据....零

我希望知道如何从响应中获取其余数据。

任何帮助都会很棒,谢谢。

http-on-examime-responsesubject实现了nsIHttpChannel,以及其他一些东西。您可以使用.QueryInterface()instanceof(内部有点使用QueryInteface,以便这也有效)来访问该界面。

const {Ci} = require("chrome");
if (subject instanceof Ci.nsIHttpChannel) {
  console.log("content-type", subject.getResponseHeader("content-type"));
  subject.visitResponseHeaders(function(header, value) {
    console.log(header, value);
  });
}

这里还有其他几个问题,详细介绍了如何使用这些通知......此外,mxr可以帮助检查有哪些接口,它如何组合在一起以及如何使用它(特别是现有的测试很高兴看到各种东西的一些用途)。

还有"nsITraceableChannel, Intercept HTTP Traffic"一文详细介绍了更多细节,例如如何使用nsITraceableChannel从这样的通道获取有效载荷数据。