Получить содержимое потока HTTP в Java + Mozilla XPCOM - PullRequest
0 голосов
/ 11 марта 2010

Я часто читаю StackOverflow в качестве источника, чтобы получить ответы; но сейчас у меня очень специфический вопрос, и я не могу найти какие-либо данные в Интернете. Я надеюсь, что вы будете всегда готовы помочь! : D

По сути, я полагаюсь на XULRunner Mozilla и его объекты XPCOM для анализа HTTP-потока браузера SWT в приложении Java на Linux.

В значительной степени основанный на Snippet128 и Snippet321 с веб-сайта Java SWT (не может опубликовать более 1 URL, извините: /), мой браузер до сих пор может анализировать все заголовки HTTP с помощью nsIHttpHeaderVisitor - и делать некоторые полезные вещи, такие как печать их на дереве и такие.

Полный источник: здесь .

Теперь ... Это уже довольно хорошо. Он охватывает большую часть того, что я хочу сделать (сначала школьное задание, немного дальше, чем просили!).

Но что я действительно хотел бы, так это иметь возможность получать необработанные данные о содержимом из каждого HTTP-запроса: конечно, HTML; но также CSS и изображения.

Я пытался разными способами достичь этой цели, но пока все не удалось:

  1. Использование объекта XPCOM - какой?

    • nsIInputStream был бы хорошим. Но я не могу найти, где на самом деле хороший поток ... Метод open () nsIHttpChannel (который возвращает nsIInputStream), похоже, вызывается браузером SWT, и у меня нет возможности вернуть поток обратно.
    • nsIRequest: не повезло.
    • другой слушатель, которого я бы пропустил? Я просто потратил час, пытаясь использовать интерфейс nsIHttpActivityObserver, но он не дает мне никакого HTTP-контента (просто GET и 200 OK).
  2. Использование другого объекта

    • браузер SWT, например. Ну, это вроде работает: метод getText () дает мне источник HTML страницы, которую я посещаю. Но я хочу больше!

Я действительно застрял здесь, и я был бы очень признателен за любую помощь.

Ура!

Флоран

1 Ответ

0 голосов
/ 14 апреля 2010

Может быть, nsITraceableChannel может вам помочь?

...