Firefox SDK 监控 http 响应
Firefox SDK monitoring http response
这主要是参考 。我正在尝试记录对 http 请求的响应,但到目前为止我还没有调试它。真的很感激一些建议...我为此苦苦思索了几个小时却一无所获。
这是我的小扩展的main.js:
var {Cc, Ci} = require("chrome");
var httpRequestObserver =
{
init: function() {
var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
observerService.addObserver( this, 'http-on-examine-response', false );
observerService.addObserver( this, 'http-on-examine-cached-response', false );
observerService.addObserver( this, 'http-on-examine-merged-response', false );
},
observe: function(subject, topic, data) {
if (topic === 'http-on-examine-response' || topic === 'http-on-examine-cached-response' || topic === 'http-on-examine-merged-response' ) {
subject.QueryInterface(Ci.nsIHttpChannel);
this.onExamineResponse(subject);
}
},
onExamineResponse: function(oHttp) {
try
{
console.log( oHttp.URI.spec );
}
catch(err)
{
console.log(err);
}
}
};
当我执行 firefox 附加组件 sdk 时,测试浏览器启动正常,如果我打开工具 > 附加组件 > 扩展,我会看到我的列表在那里。但是当我将测试浏览器指向 google.com(或任何 url)时,控制台不会记录任何内容。
我将我的 main.js 与@ https://developer.mozilla.org/en-US/docs/Setting_HTTP_request_headers 建议的技术进行了比较,一切似乎都是一致的。最后我打算做一些比记录更复杂的事情,但我什至不能让这个基本功能正常工作!
您似乎为请求而不是响应设置了观察者 (http-on-examine-request)。
在初始化函数中使用:
observerService.addObserver( this, 'http-on-examine-response', false );
observerService.addObserver( this, 'http-on-examine-cached-response', false );
observerService.addObserver( this, 'http-on-examine-merged-response', false );
同理,在observe函数中使用:
if (topic === 'http-on-examine-response' || topic === 'http-on-examine-cached-response' || topic === 'http-on-examine-merged-response' ) { ... }
这主要是参考 。我正在尝试记录对 http 请求的响应,但到目前为止我还没有调试它。真的很感激一些建议...我为此苦苦思索了几个小时却一无所获。
这是我的小扩展的main.js:
var {Cc, Ci} = require("chrome");
var httpRequestObserver =
{
init: function() {
var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
observerService.addObserver( this, 'http-on-examine-response', false );
observerService.addObserver( this, 'http-on-examine-cached-response', false );
observerService.addObserver( this, 'http-on-examine-merged-response', false );
},
observe: function(subject, topic, data) {
if (topic === 'http-on-examine-response' || topic === 'http-on-examine-cached-response' || topic === 'http-on-examine-merged-response' ) {
subject.QueryInterface(Ci.nsIHttpChannel);
this.onExamineResponse(subject);
}
},
onExamineResponse: function(oHttp) {
try
{
console.log( oHttp.URI.spec );
}
catch(err)
{
console.log(err);
}
}
};
当我执行 firefox 附加组件 sdk 时,测试浏览器启动正常,如果我打开工具 > 附加组件 > 扩展,我会看到我的列表在那里。但是当我将测试浏览器指向 google.com(或任何 url)时,控制台不会记录任何内容。
我将我的 main.js 与@ https://developer.mozilla.org/en-US/docs/Setting_HTTP_request_headers 建议的技术进行了比较,一切似乎都是一致的。最后我打算做一些比记录更复杂的事情,但我什至不能让这个基本功能正常工作!
您似乎为请求而不是响应设置了观察者 (http-on-examine-request)。
在初始化函数中使用:
observerService.addObserver( this, 'http-on-examine-response', false );
observerService.addObserver( this, 'http-on-examine-cached-response', false );
observerService.addObserver( this, 'http-on-examine-merged-response', false );
同理,在observe函数中使用:
if (topic === 'http-on-examine-response' || topic === 'http-on-examine-cached-response' || topic === 'http-on-examine-merged-response' ) { ... }