2010-08-16 8 views

Respuesta

5

¿Has pensado en usar Fiddler? Incluso tienen un API que es posible que pueda usar para esto.

Editar

Usted puede intentar usar la Navigated event o LoadCompleted event para obtener información de respuesta. Es posible que pueda utilizar el Navigating event para obtener información de solicitud. Estos eventos pueden ocurrir con solicitudes asíncronas, pero no estoy seguro de eso.

El Editar Contraataca

Bueno, yo hice algunas pruebas usando los eventos anteriores, y me temo que no tengo nada. Los eventos no me daban nada que pudiera usar. A pesar de que tenían acceso a webresponse y webrequest, siempre fueron nada/nulo en mis pruebas.

Supongo que la triste realidad es que el control del navegador web no estaba destinado a ser utilizado de la manera que desee. Es solo para servir páginas web/datos y no le proporciona el acceso para examinar los datos. Creo que lo hicieron como C.Y.A. medir para evitar que alguien haga un navegador de malware/spyware.

Lo mejor que puede hacer es acoplar el navegador web con el violín (o alguna otra biblioteca de "olfateo").

+0

Yo tenía la esperanza de que hubo algún acontecimiento que pudiera captar en el control de explorador Web. –

+0

con respecto al resultado 'The Edit Strikes Back', estaba a punto de comentar diciendo lo mismo. ¿Qué piensa sobre el uso de la clase WebClient para realizar las solicitudes y luego usar el control del navegador para mostrar los resultados? No he tenido mucho tiempo para experimentar, pero creo que ese será mi próximo paso. –

+0

Eso es factible, usando NavigateToStream (en webbrowser) con OpenRead (en webclient), pero no estoy seguro de qué eventos usar. Suena como algo divertido de probar. –

4

Otra forma de lograr esto es mediante la implementación de su propio controlador Asynchronous Pluggable Protocol, pero no es una tarea trivial. Básicamente, las aplicaciones son el mecanismo utilizado por Internet Explorer para descargar datos de una url, a través de URLMON. Puede implementar su propia APLICACIÓN que reemplace el controlador predeterminado que utiliza URLMON, lo que le permitiría controlar todas las solicitudes y respuestas.

En lugar de reemplazar el controlador predeterminado también puede implementar una APLICACIÓN, que lo envuelve. Un ejemplo comúnmente mencionado es el PassThroughAPP creado por Igor Tandetnik, que muestra cómo algo así podría hacerse. También puede encontrar una implementación C# en este proyecto de código article. Creo que la interfaz que más le interesaría es IHttpNegotiate, y el método OnResponse, que permite a un cliente examinar los encabezados de solicitud y respuesta.

Hay algunos problemas con PassThroughApp, que se detallan, junto con una posible solución here. A continuación se incluyen algunos recursos más.

http://support.microsoft.com/?id=kb;en-us;303740 http://www.codeproject.com/KB/aspnet/AspxProtocol.aspx

Cuestiones relacionadas