【发布时间】: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 和图片。
我一直在尝试不同的方法来实现这个目标,但到目前为止一切都失败了:
-
使用 XPCOM 对象 - 哪个?
- nsIInputStream 将是一个不错的选择。但我似乎无法找到好的流实际上在哪里...... nsIHttpChannel open() 方法(返回一个 nsIInputStream)似乎被 SWT 浏览器调用,让我无法获取流回来。
- nsIRequest:不走运。
- 另一个我会错过的听众?我只花了一个小时尝试使用 nsIHttpActivityObserver 接口,但它没有给我任何 HTTP 内容(只是 GET 和 200 OK)。
-
使用另一个对象
- 例如 SWT 的浏览器。好吧,它有点工作:它的 getText() 方法为我提供了我正在访问的页面的 html 源代码。但我想要更多!
我真的被困在这里,如果能提供任何帮助,我将不胜感激。
干杯!
弗洛伦特
【问题讨论】: