Я часто читаю StackOverflow в качестве источника для получения ответов; но теперь у меня есть очень конкретный вопрос, и я не могу найти какие-либо данные в Интернете. Я надеюсь, что вы будете так же полезны, как всегда! : DПолучить содержимое HTTP-потока в Java + Mozilla XPCOM
В принципе, я полагаюсь на XULRunner и ее объекты XPCOM для анализа HTTP-потока SWT-браузера в приложении Java в Linux.
Основываясь на Snippet128 и Snippet321 с веб-сайта Java SWT (не может размещать более 1 URL-адреса извините: /), мой браузер до сих пор может анализировать все HTTP-заголовки с помощью nsIHttpHeaderVisitor - и делать некоторые интересные вещи, такие как печать их на дереве и т. д.
Полный источник: here.
Теперь ... Это уже очень хорошо. Он охватывает большинство из того, что я хочу сделать (школьное задание сначала, немного больше, чем задано!).
Но мне бы очень хотелось, чтобы иметь возможность получать необработанные «контентные» данные из каждого HTTP-запроса: HTML конечно; но и CSS и изображения.
Я пытался различные способы достижения этой цели, но все не удалось до сих пор:
Использование XPCOM объекта - который один?
- nsIInputStream будет хорошим. Но я не могу найти, где хороший поток на самом деле ... Метод nsIHttpChannel open() (который возвращает nsIInputStream), похоже, вызывается браузером SWT, оставляя меня без возможности вернуть поток.
- nsIRequest: не повезло.
- еще один слушатель, которого я бы пропустил? Я просто потратил час, пытаясь использовать интерфейс nsIHttpActivityObserver, но он не дает мне никакого HTTP-контента (просто GET и 200 OK).
Использование другого объекта
- брАузЕр SWT для экземпляра. Хорошо, что это работает: метод getText() дает мне html-источник страницы, которую я посещаю. Но я хочу больше!
Я действительно застрял здесь, и я бы очень признателен за любую помощь.
Cheers!
Флоран