Xpoint
   [напомнить пароль]

Вытянуть ответ сервера по http-on-examine-response

Метки: [без меток]
2007-08-16 21:08:41 [обр] KML[досье]

Хочется анализировать риспонсы в своём расширении. Например, произошел submit формы, в риспонсе должны лежать определённые данные, которые мне нужны.

Событие http-on-examine-response срабатывает, но достучаться до данных риспонса я не смог, удалось получить доступ только к nsIUploadChannel, в котором нахотядся данные submit.

Пробовал поковыряться в расширении "livehttpheaders", но оно не работает с этими данными, берёт только хэдеры.

спустя 23 часа [обр] Cube(2/2)[досье]

Меня тоже интересует этот вопрос.

Насколько я понял, найдя это: http://wiki.mozilla.org/Feed_Handling/Type_Determination, это: http://wiki.songbirdnest.com/i......niffer_&_Launcher_Architecture и это: http://weblogs.mozillazine.org/ben/archives/010116.html, в Firefox 2 можно создать XPCOM-объект с интерфейсом nsIContentSniffing, который будет получать управление при всякой загрузке и должен возвращать соответствующий содержимому MIME-тип; если определённый расширением сниффер вернёт какой-нибудь нестандартный MIME, то его можно будеть обработать с помощью соответствующего content handler'а.

Поэкспериментировал с nsIContentSniffer. Почему-то у компоненты кроме собственно nsIContentSniffer запрашивается ещё интерфейс nsIContentSniffer_MOZILLA_1_8_BRANCH; а также (или соответственно запросу второго интерфейса) отличается интерфейс метода getMIMETypeForContent от задокументированного на xulplanet - вместо (arrayof PRUint8 data, PRUint32 length) передаётся ([xpcom wrapped nsIChannel, nsIRequest, nsISupports], data, length).

Ещё не пробовал, но, возможно удастся вытащить какой-нибудь stream из первого аргумента с целью копирования.

спустя 12 дней [обр] KML[досье]
Мутная штука этот nsIContentSniffer...
спустя 1 день 15 часов [обр] Владимир Палант(434/4445)[досье]

nsIContentSniffer пытается определить MIME-тип по первым байтам документа — к вашей проблеме он ни при чем.

Когда вызывается http-on-examine-response ответ сервера уже прочитан — данные приняты и принять их второй раз невозможно. Боюсь, что ваша проблема так не решается.

спустя 4 часа 43 минуты [обр] Cube(2/2)[досье]
nsIContentSniffer пытается определить MIME-тип по первым байтам документа...

Не более 4096 байт в моей конфигурации.

...к вашей проблеме он ни при чем.

Кажется ни один из scriptable-интерфейсов не при чём. Возможно, ошибаюсь.
В случае с nsIContentSniffer вроде бы можно, определив нужную страницу, указать какой-нибудь MIME, на который есть обработчик в расширении (а в случае с nsIContentSniffer_MOZILLA_1_8_BRANCH - ещё и получить доступ к channel). Далее, скорее всего возникнут ещё какие-нибудь проблемы - например, полученное содержимое возможно потребуется отобразить в браузере. Пока что столкнулся с проблемой реализации nsIContentSniffer - в течение первой сессии после установки компоненты браузер работает, а потом не запускается совсем.

В общем, хотелось бы знать, какие пути доступа к содержимому ещё существуют.

спустя 1 день 5 часов [обр] Денис Ибаев aka Dionys(15/57)[досье]
Можно покопаться в кэше на предмет полученных данных. Но к тому времени, как появится доступ к этим данным, они будут уже отображены или иным образом обработаны.
Powered by POEM™ Engine Copyright © 2002-2005