我目前正在创建一个 Firefox 扩展应用程序来捕获 HTTP 响应并将其响应正文(HTML 等)与数据进行比较。我正在使用观察者服务来捕获所有 HTTP 请求和响应,并实现函数观察、注册/注销观察者等。
使用上面的函数,我可以获得请求和响应标头,但我无法获得 HTML 或其他内容的响应正文。有没有办法使用我上面提到的功能来获取身体?
谢谢你的帮助。
我目前正在创建一个 Firefox 扩展应用程序来捕获 HTTP 响应并将其响应正文(HTML 等)与数据进行比较。我正在使用观察者服务来捕获所有 HTTP 请求和响应,并实现函数观察、注册/注销观察者等。
使用上面的函数,我可以获得请求和响应标头,但我无法获得 HTML 或其他内容的响应正文。有没有办法使用我上面提到的功能来获取身体?
谢谢你的帮助。
要查看响应正文,您需要注册http-on-examine-response
事件,然后QueryInterface
将主题注册为nsITraceableChannel
,而不是nsIHttpChannel
。
这样做的原因是当您收到 HTTP 响应标头时,响应正文可能尚未开始下载,因此当时数据实际上不可用。
此链接应该可以帮助您: http: //www.softwareishard.com/blog/firebug/nsitraceablechannel-intercept-http-traffic/