[DUDA] Usar Httpwebrequest

Iniciado por .:Weeds:., 6 Octubre 2010, 19:20 PM

0 Miembros y 1 Visitante están viendo este tema.

.:Weeds:.

Buenas, he estado buscando info de como usar el httpwebrequest pero no he encontrado nada en claro, lo que quiero hacer es que establezca conexion con una web, rellene una caja de texto de una web y haga un submit, alguien que me lo explique o que me de info de alguna web lo agradeceria mucho
S4lu2!


[D4N93R]

#1
Hola,

Bueno, la clasee HttpWebRequest Y el Response no llenan ninguna caja de texto, sino que envían la data como si hubiese una, obviamente puede haber o no esa caja de texto, pero ha de suponerse el string puede venir de cualquier otro sitio.

Ahora, el código. Una pequeña búsqueda en google nos remite a este foro, escrito por MANULOMM: http://foro.elhacker.net/net/c_buscar_codigo_de_fuente_web-t218049.0.html;msg1033220 en ese post podrás ver como hacer un Request a un web server.

Ahora falta como cargar la data al servidor, es decir el request+response, pues te doy una pista HttpWebResponse :)

Saludos!

.:Weeds:.

Voi a tener que aprender c#, no me aclaraba por eso por que todos los ejemplo útiles que vi estaban en c# xD(lo mio es vb.net), la teoria la entiendo, solicitar un request a la web, especificar el metodo del request, en mi caso post, recorrer todo el código en busca de la parte que me interesa, en mi caso el textbox y por ultimo enviar la data(esta parte no la entiendo muy bien), pero como localizo donde esta la caja de texto? Este tema me tiene mareado xD, voi a leer mas a ver si me aclaro un poco, no quiero darme por vencido
Saludos


[D4N93R]

La data la mandas en el Request, ejm:
Código (csharp) [Seleccionar]

Stream newStream=myRequest.GetRequestStream();
newStream.Write(data,0,data.Length);
newStream.Close();



data es un byte[].

Saludos!

Siuto

Primero tenes que ver como se envia la informacion a la web en cuestion cuando esa operacion (POST) desde tu PC usando un browser, para eso te recomiendo un programa: Fiddler...

Con ese programa podes ver la informacion que envias y recibis desde la web y una vez que sepas lo que tenes que enviar y el formato mira como hacer el POST con las clases HttpWebRequest y HttpWebResponse.

PD: Te conviene usarlo desde la solapa RAW el visor...

.::IT::.

#5
Pues mira no necesariamente necesitas llenar cajas de texto en la pagina lo unico es enviar los valores necesarios por metodo POST o GET para ello tienes el HtttpWebReques, para recoger lo que devuelve el server pues tienes el HttpWebResponce ambos se encuentran en System.Net por lo que tendras que agregar la referencia al ensamblando y colocar Import System.Net

ahora un ejmplo basico de su uso seria

http://foro.elhacker.net/net/aporte_obtener_ip_publica_e_isp_en_net-t306700.0.html

ahora pues para hacer POST pues supongamos lo siguiente

tienes una web  htt::\\www.webprueba.com\form.html

donde form.html contiene lo sigueinte

<html>
<head>
</head>
<body>
   <FORM action="http://www.webprueba.com/nombre.php" method="POST">
      <LABEL for="nombre">Nombre: </LABEL>
      <INPUT type="text" id="nombre"><BR>
      <INPUT type="submit" value="Enviar"> <INPUT type="reset">
   </FORM>
</body>
</html>


el form tiene "action=http://www.webprueba.com/nombre.php",
un INPUT  con id="nombre" entonces en la creacion de tu HttpWebRequest deberias asignarle,

[url="http://www.webprueba.com/nombre.php?nombre="el"]http://www.webprueba.com/nombre.php?nombre="el[/url] nombre simcomillas"

aqui un ejemplo donde se hace post ya demas se afronta un reto capcha

http://foro.elhacker.net/net/aporte_consumir_contenido_web_en_aplicaciones_net_cvb_netasp_net-t306634.0.html

Ahora si la web en sus fuentes no vees nada claro pues deberias usar wireshark  para ver todas las peticiones que se hacen durante el envio.

Y por ultimo si pudieras decirnos exactamente que web es pues encatado te ayudaria!!
Simplemente .::IT::.

.:Weeds:.

El programa fiddler me ha funcionado perfecto!! Solo tengo que poner:
Código (vbnet) [Seleccionar]
Webbrowser1.navigate("www.prueba.com?tal=pepito")
El problema ahora surge que esa accion no la puedo repetir si no reinicio los eventos del post, en la misma web hay un boton con la sintaxis ?order-events=reset pero lo pongo en navigate y me ignora, solo me deja dandole click, hay alguna forma de reiniciar el webbrowser? como si lo volvieras a abrir, asi se reinicia seguro.. xD
Saludos


.::IT::.

Umm la pregunta era como usar HttpWebrequest?? peor bueno creo que lo que estas buscando es llenar los controles de formularios  de una pagina y ahcer sumit y cargar dicha pagina o me equivoco?? bueno de ser asi pues mira esto

http://foro.elhacker.net/net/webbrowser_en_c_como_rellenar_campos_automaticamente-t280952.0.html

Simplemente .::IT::.