PDA

Ver la Versión Completa : Mandar texto a una pagina web


Gean
01-02-2011, 17:47:11
Buenas, tengo una duda, de un memo de mi programa, puedo enviar el texto a una pagina web? a un edit, o a otro memo contenido en ella?
Si es posible, se podría simular una pulsación el botón "Enviar" del formulario de la pagina web? Un saludo, gracias de antemano :-).

roman
01-02-2011, 18:15:48
Te recomiendo que leas este mensaje (http://clubdelphi.com/foros/showpost.php?p=388967&postcount=8) y, posteriormente, el hilo al cual pertenece ese mensaje.

// Saludos

Neftali [Germán.Estévez]
01-02-2011, 18:51:18
¿Cual es la página web?
¿Qué campos envía?

Gean
01-02-2011, 18:56:18
Gracias, eso es justamente lo que quiero, solo no me queda clara una cosa, en el caso que me pasas, sale el form action, pero en mi caso no lo veo en ninguna parte, es este boton el que hay que apretar:
<input type="submit" name="ctl00$cntContenido$btnCompactar" value="Compactar" id="ctl00_cntContenido_btnCompactar" class="btn">
Asi que no se muy bien como relacionar la informacion que me pasa

Me edito:
Lo siento, no me fije bien en el evento, no esta en el botón, sino en el formulario, seguiré investigando a ver si lo consigo :)

Gean
01-02-2011, 18:57:19
¿Cual es la página web?
¿Qué campos envía?

http://www.toolsforogame.com/battle/compactador_de_batallas.aspx?idi=es-es
Esa es la pagina web, mi idea es pegar datos en el primer memo que aparece, y luego simular el click en compactar

Gean
01-02-2011, 19:36:46
Bueno, he avanzado bastante gracias a roman y al codigo de neftali, solo me queda una duda, por lo que veo el TIdMultiPartFormDataStream sirve para subir archivos, pero si yo solo quiero enviar texto como lo hago? muchas gracias :)

Gean
03-02-2011, 13:25:23
Sigo atascado en lo de enviar texto y no archivos, alguien me puede ayudar porfavor :(?

roman
03-02-2011, 15:33:39
Deberías buscar más. Aquí hay un ejemplo (http://clubdelphi.com/foros/showpost.php?p=342760&postcount=7) que envía texto sin archivos.

// Saludos

Gean
03-02-2011, 16:10:26
Muchas gracias, el caso es que vi ese ejemplo hace tiempo, y no me dio por pensar en ello. Mira, este es el codigo que yo uso para mandar el texto:
procedure TForm2.btn1Click(Sender: TObject);
var
Fields: TStrings;
Response: String;
I: Integer;
begin
IdHTTP := nil;
Fields := nil;
try
IdHTTP := TIdHTTP.Create(nil);
Fields := TStringList.Create;
Fields.Values['ctl00$cntContenido$txtInforme'] := mmo1.Text;
try
Response := idHttp.Post('http://www.toolsforogame.com/battle/compactador_de_batallas.aspx?idi=es-es', Fields);
mmo2.Text := Response
finally
idHttp.Free;
end;
finally
Fields.Free;
end;
end;
Y me devuelve el codigo de la pagina entera, pero sin el combate compactado. Me he estado fijando, y al parecer esa pagina usa un javascript para compactar la batalla, tendria que hacer algo mas para que funcionase? Es que no veo mi error, enserio

Saklut
07-02-2011, 14:05:51
Deberías utilizar un snifer (por ejemplo el Wireshark) para ver qué datos envía exactamente el POST, y tratar de hacerlo igual.

Le he dado un vistazo y envía más cosas aparte del informe.

Gean
07-02-2011, 20:59:11
Um, muchas gracias por la información, le echare un vistazo a ver, aunque se me hace extraño que envíe algo mas. Gracias! :)

roman
08-02-2011, 17:02:10
En Firefox puedes instalar la extensión "Web Developer", con la cual te será muy sencillo examinar los campos que componen un formulario. La extensión es muy útil para muchas otras cosas relacionadas con el desarrollo Web.

Toma en cuenta que no siempre es tan sencillo automatizar un formulario HTML porque en muchos casos el servidor genera un determinado campo oculto (token) que envia al navegador al momento de presentar el formulario. Dicho campo lo lee de vuelta cuando recibe el POST para cerciorarse que dicho POST es "bueno".

En esos casos, no bastaría con mandar ti propio POST. Tendrías que obtener con GET la página del formulario, leer dicho campo y cualquier otro que mande el servidor, y enviarlos en el POST junto con el resto de datos.

// Saludos