Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   problema al usar dos idhttp (https://www.clubdelphi.com/foros/showthread.php?t=64474)

Greco 03-04-2009 00:24:31

problema al usar dos idhttp
 
Estoy utilizando el componente IdHttp de las IndyClients para enviar informacion a una web por GET, hasta ahi todo funciona bien.

Ahora necesito enviar la informacion a dos web distintas, por lo cual puse otro Idhttp con los datos necesarios para enviar las variables a la otra web pero no me funciona:

Dentro del codigo de mi aplicacion hago un IF para comprovar algunas cosas, dependiendo de lo que ocurra envío o no la informacion a una web.

Código Delphi [-]
IF (...) Then
  //...
else
  try
  IdHTTP1.Get('http://servidor1/pagina.php?variable='+valor);
  IdHTTP2.Get('http://servidor2/pagina.php?variable='+valor);
  except
  //...
end;

si pongo solo una de las dos (cualquiera) funciona bien pero si dejo las dos solo funciona la primera y la segunda no.

Cual puede ser el problema, lo mas seguro es que estoy haciendo algo mal.

Otro problema que tengo es sobre el valor que envío a la web... cuando la cadena contiene la letra &, me la elimina junto con el resto de la cadena, por ejemplo si envío:

'palabras & mas'

solo me envía 'palabras ', eliminando '& mas'.

Ojalá puedan orientarme.

Saludos.

dec 04-04-2009 13:52:24

Hola,

Respecto al segundo problema, creo que se solucionaría usando funciones que "codificaran" la cadena para ser usada en una URL. El maestro Seoane (¡saludos, estés donde estés!) expone cómo en este truco. Respecto del primer problema... no estoy muy seguro: en principio debería funcionar, pues el "Get" es "síncrono", esto es, primero se ejecuta uno, y luego el otro... pero, no sé... no sé... :D

Por otro lado, normalmente se usa el método "POST" de HTTP para envíar datos a una página web, precisamente, por este tipo de "limitaciones" del método "GET", que, no permite enviar la misma cantidad de datos (ni en la misma forma) que sí permite el método "POST", claro, que, por otro lado, de nada vale enviar un HTTP POST si el servidor espera un HTTP GET... no sé..., no sé... :D

roman 04-04-2009 17:08:35

La codificación de la cadena también puede hacerse con las mismas Indy usando la clase TIdUri y su método UrlEncode. Como es un método de clase no hay que crear un objeto, sino que puede usarse directamente:

Código Delphi [-]
Cadena := TIdUri.UrlEncode(Cadena);

La clase TIdUri es de la unidad IdUri.

// Saludos


La franja horaria es GMT +2. Ahora son las 02:04:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi