0

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

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

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 包装的 nsISupports] 请求数据....null

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

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

4

1 回答 1

1

subjectforhttp-on-examime-response工具nsIHttpChannel,除其他外。您可以使用.QueryInterface()or 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,拦截 HTTP 流量”文章详细介绍,例如如何使用nsITraceableChannel从此类通道获取有效负载数据。

于 2013-10-29T14:03:42.973 回答