【问题标题】:Get the content of the HTTP stream in Java + Mozilla XPCOM在 Java + Mozilla XPCOM 中获取 HTTP 流的内容
【发布时间】:2010-03-11 00:58:17
【问题描述】:

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

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

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

完整来源是here

现在...这已经很不错了。它涵盖了我想做的大部分事情(起初是学校作业,比要求的要多一点!)。

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

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

  1. 使用 XPCOM 对象 - 哪个?

    • nsIInputStream 将是一个不错的选择。但我似乎无法找到好的流实际上在哪里...... nsIHttpChannel open() 方法(返回一个 nsIInputStream)似乎被 SWT 浏览器调用,让我无法获取流回来。
    • nsIRequest:不走运。
    • 另一个我会错过的听众?我只花了一个小时尝试使用 nsIHttpActivityObserver 接口,但它没有给我任何 HTTP 内容(只是 GET 和 200 OK)。
  2. 使用另一个对象

    • 例如 SWT 的浏览器。好吧,它有点工作:它的 getText() 方法为我提供了我正在访问的页面的 html 源代码。但我想要更多!

我真的被困在这里,如果能提供任何帮助,我将不胜感激。

干杯!

弗洛伦特

【问题讨论】:

    标签: java xpcom xulrunner


    【解决方案1】:

    也许 nsITraceableChannel 可以帮助你?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多