Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
1

Необходимо перехватить ответ на post-запрос, отредактировать его, и отправить дальше

07.12.2011, 11:37. Просмотров 4854. Ответов 14
Метки нет (Все метки)

Ситуация такая пишу свой браузер, специфика задачи не позволяет использовать стандартные, необходимо перехватить ответ на post-запрос, там возвращается HTML, отредактировать его, и отправить дальше. Там уже скрипт страницы вставит его куда надо.

Добавлено через 21 час 17 минут
С WebBrowser никто не работал что-ли???
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2011, 11:37
Ответы с готовыми решениями:

Отправить форму методом POST и получить ответ
Как отправить вот такую форму на сервер и получить с него ответ в текстовом виде? <form...

POST-Запрос и его ответ
Вступление: У РЖД есть такая программа лояльности - РЖД Бонус. Суть её в том, что за успешные...

При попытке отправить post запрос с капчей сервер не принимает его
на сайте имеется капча, смотрел сниффером - первый запрос идет на страницу с капчей, потом скрипт...

Отправить POST запрос и получить ответ
нужно послать запрос и получить результаты поиска со словом "Hello" static void Main(string args)...

Как отправить на сервер xml запрос с помощью post и получить ответ в xml?
нужно отправить на сервер xml запрос с помощью post и получить ответ в xml, погуглил нашел примеры,...

14
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 01:48 2
Такая формулировка что хрен поймешь ) , где "ТАМ" - в ответе на запрос ?, куда "ДАЛЬШЕ" - ?., "ТАМ уже СКРИПТ страницы" - если мы имеем ответ на запрос, то какой СКРИПТ на какой СТРАНИЦЕ, куда ВСТАВИТ ???

"пишу свой браузер" - это значит что у тебя должен быть "свой" парсер DOM, и "свой" движок отрисовки., а WebBrowser использует движок IE 4.

З.Ы По названию темы я вообще подумал что речь идет о реализации снифера на c# )
0
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
08.12.2011, 15:11  [ТС] 3
ну хоть кто-то ответил ))) наверно я просто что-то непонятно написал ) ладно... про скрипт забыли ) может есть предложение как вообще можно получить ответ на запрос который отправлялся из WebBrowser (то есть сайт открытый через WebBrowser послал запрос на имясайта/файл.php) могу я как-то получить ответ на этот запрос в программу (ну например в переменную его закинуть).

Добавлено через 19 минут
и ещё вопрос который должен упростить жизнь ) можно ли как-то получить исходный код запроса (то есть то, что отправляется на сервер) то есть отлавливать все запросы которые отправляются из WebBrowser.
0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 16:02 4
могу я как-то получить ответ на этот запрос в программу
- насколько я помню, у компонента есть событие OnDocumentLoad (или как то так), возникает каждый раз после загрузки документа (ответа на запрос)., после чего можно получить контент документа через одно из свойств - WebBrowser.Document.InnerHtml (или как то так)
получить исходный код запроса
- можно, если написать снифер (или если докапаться до COM интерфейсов IE, может там что то есть)., если просто посмотреть то можно сторонними прогами.

В общем вот:
http://msdn.microsoft.com/ru-ru/library/5d67hf8a.aspx
0
08.12.2011, 16:02
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
08.12.2011, 16:05  [ТС] 5
если можно поподробнее о снифере... может пример кода есть... ссылка какая-то где пример достать можно... заранее спасибо...
0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 16:14 6
c# WinPCap
http://pcapdotnet.codeplex.com/releases/view/58640
0
Niades
08.12.2011, 17:01
  #7

Не по теме:

Цитата Сообщение от sau Посмотреть сообщение
а WebBrowser использует движок IE 4.
Вообще-то IE7

0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 18:39 8
Цитата Сообщение от Niades Посмотреть сообщение

Не по теме:


Вообще-то IE7

Элемент управления WebBrowser является управляемой оболочкой для WebBrowser control ActiveX
Remarks

Applications that host this Microsoft ActiveX control can browse sites on the World Wide Web, as well as directories on the local computer and on network servers.

Object Information

CLSID CLSID_WebBrowser
Minimum availability Internet Explorer 4.0
Minimum operating systems Windows 98, Windows CE 4.0
http://msdn.microsoft.com/ru-ru/library/aa752085(v=VS.85).aspx

Удали 7-ю версию браузера (со всеми его компонентами), и WebBrowser все равно будет работать, фактически он может определять версию и брать последнюю, но минимум это IE4

Добавлено через 12 минут
З.Ы Рефлектор показал загрузку ActiveX по GUID = "8856f961-340a-11d0-a96b-00c04fd705a2", в реестре по данному GUID-у ссылки на компоненту текущего браузера.
0
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
08.12.2011, 18:47  [ТС] 9
как я понял сниффер - отдельная программа, и она поможет только чтобы увидеть запрос, и работать вручную с ним. А у меня идея такая: необходимо исходник запроса получить (надо его программно получать, чтоб всё автоматически работало) и программно послать запрос на сервер, получить ответ и работать с ответом... проблема в программном получении исходника запроса.

Добавлено через 2 минуты
неужели никак нельзя получить запросы которые отправляет сама программа... прога ж по идее должна знать что она отправляет...
0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 19:11 10
Ну почему, реализуй снифер в свой программе и будешь иметь пакет, просто я не уверен что WebBrowser реализует паблик свойства для доступа к содержимому пакета (это слишком низкий уровень для такой компоненты), сам то он отправляет данные , но они формируются на уровне ActivX компоненты при работе с сокетами.
Да и на врятли есть необходимость тебе пакет разбирать, все данные и так есть. - html, адрес сервера и т.п

Добавлено через 13 минут
На крайняк, можешь посмотреть какие данные нужны в запросах (для IE есть удобное расширение ieHttpHeaders), и отправлять их через WebClient-WebRequest, в общем средств хватает, нужно только задачу себе корректно сформулировать )
1
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
08.12.2011, 19:21  [ТС] 11
) про синффер узнал сегодня утром от Вас... как реализовать его ума не приложу... если не сложно может есть какая-то пошаговая инструкция )

ещё была идея такая... отредактировать HTML страницы... то есть на странице есть форма (тэг <form>), отредактировать параметр action так чтобы он отправлял данные в мой проект, а не на сервер... может сокет открыть какой-нибудь, или ещё как-то связать страничку с проектом... Возможно как-то это реализовать?

Добавлено через 5 минут
ладно... от сниффера откажемся... )
0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 19:39 12
В принципе имея только обрывки задачи, сложно предложить грамотное решение, все средства я перечислил, какое удобнее - сами решайте ).

Добавлено через 15 минут
отредактировать параметр action так чтобы он отправлял данные в мой проект
- ну тогда ,ко всему прочему, твой проект должен реализовать веб-сервер и обрабатывать HTTP запросы ), опять таки скорей всего нафиг это не нужно, формулировка задачи не корректная.
0
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
08.12.2011, 19:46  [ТС] 13
постараюсь сформулировать корректно.
есть форма на сайте после сабмита формы отсылается post запрос на сервер, в ответе на запрос приходит нудный мне для работы html код.
цель: получить этот html код.

гуглил много по этому поводу, ничего толкового не нашёл, практически во всех случаях натыкался на вариант получения ответа на посланный запрос (то есть мне его сначала надо послать, а потом могу получить ответ). Вот я и решил на шаг назад отойти и попробовать получить код запроса, чтобы самому его отослать, и получить долгожданный ответ.
вот как бы и всё... надеюсь теперь корректно задачу сформулировал... если что не понятно опять написал, говорите - поясню... второй день долблюсь над этим вопросом...
0
sau
2099 / 1678 / 286
Регистрация: 22.07.2011
Сообщений: 6,413
Завершенные тесты: 1
08.12.2011, 19:54 14
цель: получить этот html код.
1. Данные запроса можно промониторить через ieHttpHeaders,wireshark и прочие синферы (или свой снифер в программе) , затем программно отправить этот запрос через WebClient или WebRequest, в ответ получишь HTML с которым делай все что тебе нужно.
2. получить HTML можно так же через свойства WebBrowser.-а, как писал выше.
3. Написать свой снифер ,который будет мониторить все пакеты проходящие через сетевую карту, и выгребать нужный тебе HTML/
4. Может еще какой изврат придумать ), но первых 3-х хватит.

Твоя моя понимать ?

З.Ы Чет простая тема разбухла, пора прикрывать флуд )
1
KA4AH
0 / 0 / 1
Регистрация: 06.12.2011
Сообщений: 13
09.12.2011, 13:29  [ТС] 15
вроде понял идею... буду пробовать..

Добавлено через 16 часов 38 минут
дико извиняюсь перед sau. дело в том что нужный html после получения ответа появляется на сайте... никаких запросов ловить не нужно... надо было просто в правильный момент ещё раз посмотреть в html. Но всё равно спасибо так как натолкнули на мысль...
0
09.12.2011, 13:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 13:29

Как перехватить post-запрос?
Не нашел категории куда задать свой вопрос, поэтому задам тут. Как перехватить post запрос на...

POST request. Как принять и отправить ответ
Добрый день дорогие форумчане! Помогите определиться пожалуйста. Стоит такая задача:...

Перехватить HTTPS запрос, изменить часть ссылки и отправить на сервер
Приветствую всех. Столкнулся с проблемой перехвата HTTPS запросов. Задача состоит в том что бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru