我正在尝试阅读响应标题'name'和'value'。最终目标是将它们与某些预设名称和值进行比较,以确定它们是否匹配。
这是我到目前为止所使用的函数,它是每次获得响应头时运行的函数。
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 wrapped nsISupports] 请求数据.... null
我希望知道如何从响应中获取其余数据。
任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
http-on-examime-response
的subject
实现了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
从这样的频道获取有效载荷数据。