2008-11-25 26 views
21

En .NET, ¿es posible convertir una solicitud HTTP sin formato al objeto HTTPWebRequest?Conversión de solicitud HTTP sin procesar en el objeto HTTPWebRequest

Estoy seguro de que .NET internamente lo está haciendo. ¿Alguna idea de qué parte de .NET está realmente manejando esto? ¿Puedo llamarlo o hay alguna biblioteca externa que permita conexiones HTTP sin procesar?

+0

¿Qué hay que hacer? Un objeto HttpRequest es típicamente lo que programarías si estás haciendo cosas ASP.Net en un entorno alojado. Un HttpWebRequest suele ser lo que programa en las aplicaciones cliente/servidor. –

+0

¿Qué es una solicitud de HTTP cruda? –

+6

Esta es una solicitud HTTP sin procesar: GET /index.php HTTP/1.1 Host: www.example.com –

Respuesta

9

No creo que haya un método expuesto para hacer esto. Es posible que tenga que buscar o escribir un analizador para descomponer la solicitud y luego escribir su propia clase que amplíe HttpWebRequest.

Esto es lo que se ve como un analizador de CodeProject:

http://www.codeproject.com/KB/IP/CSHTTPServer.aspx

Miré el código de rotor para la HttpWebRequest (brevemente) y no vi nada que se destacó como una bala de plata. Aquí está el enlace al archivo:

http://www.123aspx.com/Rotor/RotorSrc.aspx?rot=40844

Todo el código del rotor está aquí para navegar en línea:

http://www.123aspx.com/Rotor/default.aspx

y aquí se puede descargarlo:

http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&displaylang=en

Sé que un montón de enlaces realmente no responden a su pregunta, pero no creo la funcionalidad que está buscando está expuesta en el marco. Me encantaría que se demuestre que estoy equivocado, así que actualice la publicación si encuentra una buena manera de hacerlo. Sé que las herramientas deben hacerlo, cualquier cosa escrita en .Net que registra solicitudes sin procesar y luego te permite volver a enviarlas está haciendo algo similar. Creo que violín (http://www.fiddler2.com) está escrito en .Net, es posible que desee enviar un correo electrónico a esos tipos y ver si pueden ayudar.

+1

Excepto que ahora el enlace 123aspx.com está roto. ¡Gente, dejen de publicar enlaces y proporcionen respuestas reales! "Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio de destino no esté disponible o esté permanentemente fuera de línea" http://stackoverflow.com/help/how-to-withwer – vapcguy

2

Google para Cassinni, que era un servidor HTTP con una fuente ofrecida originalmente por Microsoft que podía alojar llamadas ASP.NET. Tienes que analizar la solicitud tú mismo y cargarla, pero Cassinni sería un buen punto de partida. Esta URL puede ayudar a:

http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx

+0

Gracias, lo investigaré. –

+1

Excepto que ahora el enlace está roto. ¡Gente, dejen de publicar enlaces y proporcionen respuestas reales! "Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio de destino no esté disponible o esté permanentemente fuera de línea" http: // stackoverflow.com/help/how-to-answer – vapcguy

Cuestiones relacionadas