0

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

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

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

完整来源在这里

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

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

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

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

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

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

我真的被困在这里,我将非常感谢任何帮助。

干杯!

弗洛朗

4

1 回答 1

0

也许 nsITraceableChannel 可以帮助你?

于 2010-04-13T21:35:20.903 回答