在Java + Mozilla XPCOM中获取HTTP流的内容

时间:2010-03-11 00:58:17

标签: java xpcom xulrunner

我经常阅读StackOverflow作为获取答案的来源;但现在我有一个非常具体的问题,我无法在互联网上找到任何数据。我相信你一如既往地乐于助人! :d

基本上,我依靠Mozilla的XULRunner及其XPCOM对象来分析Linux上Java应用程序中SWT浏览器的HTTP流。

基于来自Java SWT网站的Snippet128和Snippet321(不能发布超过1个网址抱歉:/),我的浏览器到目前为止可以使用nsIHttpHeaderVisitor解析所有HTTP头 - 并做一些漂亮的事情,如打印他们在树上等等。

完整来源为here

现在......那已经很不错了。它涵盖了我想要做的大部分工作(最初的学校作业,比问题要多得多!)。

但我真正想要的是能够从每个HTTP请求中获取原始“内容”数据:HTML当然;还有CSS和图像。

我一直在尝试不同的方法来实现这一目标,但到目前为止一切都失败了:

  1. 使用XPCOM对象 - 哪一个?

    • nsIInputStream会很好。但我似乎无法找到好流实际上的位置...... nsIHttpChannel open()方法(谁给出了一个nsIInputStream)似乎是由SWT浏览器调用的,让我无法恢复流。
    • nsIRequest:没有运气。
    • 另一位我错过的听众?我只花了一个小时试图使用nsIHttpActivityObserver接口,但它没有给我任何HTTP内容(只有GET和200 OK)。
  2. 使用其他对象

      例如,
    • SWT的浏览器。好吧它有点工作:它的getText()方法给了我正在访问的页面的html源代码。但我想要更多!
  3. 我真的被困在这里,我非常感谢任何帮助。

    干杯!

    Florent的

1 个答案:

答案 0 :(得分:0)

也许nsITraceableChannel可以帮到你?