Foros del Web » Programando para Internet » PHP »

Envío paralelo por POST

Estas en el tema de Envío paralelo por POST en el foro de PHP en Foros del Web. Hola, A ver si alguien puede echarme una mano. Quiero realizar varios envíos por POST de un string en XML a un servidor externo. Actualmente ...
  #1 (permalink)  
Antiguo 12/03/2007, 05:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 1
Antigüedad: 17 años, 1 mes
Puntos: 0
Envío paralelo por POST

Hola,

A ver si alguien puede echarme una mano. Quiero realizar varios envíos por POST de un string en XML a un servidor externo. Actualmente envío las peticiones consecutivamente pero necesitaria hacerlo simultáneamente. He probado con las librerias CURL pero no funcionan. Os adjunto el código:

//Array con las tres llamadas
$strParameters_array = array( $strParameters, $strParameters_out, $strParameters_ret );

$mh = curl_multi_init();

foreach ( $strParameters_array as $Key => $Str )
{
$conn[$Key] = curl_init();
// Set the URL to execute
curl_setopt($conn[$Key], CURLOPT_URL, "http : //url de peticion al servidor");



// Set options
curl_setopt($conn[$Key], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($conn[$Key], CURLOPT_POST, 1);
curl_setopt($conn[$Key], CURLOPT_POSTFIELDS, $Str);
curl_setopt($conn[$Key], CURLOPT_HTTPAUTH, CURLAUTH_ANY);
CURLOPT_USERPWD, "usuario:password");


curl_setopt($conn[$Key], CURLOPT_CONNECTTIMEOUT, 45);
curl_setopt($conn[$Key], CURLOPT_TIMEOUT, 60);

curl_multi_add_handle ($mh, $conn[$Key]);

}

do
{
$mrc = curl_multi_exec ($mh, $active);
}while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ( $active and $mrc == CURLM_OK )
{
//Whait for network
if ( curl_multi_select($mh) != -1 )
{
//pull in any new data, or at least handle timeouts
do
{
$mrc = curl_multi_exec ($mh, $active);
}while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}

if ($mrc != CURLM_OK)
{
print "Curl multi read error $mrc/n";
}

//retrieve data
foreach ($strParameters_array as $i => $str)
{
if (( $err = curl_error ($conn[$i])) == '')
{
$res[$i] = curl_multi_getcontent($conn[$i]);
}
else
{
print "Curl error on handle $i: $err\n";
}
curl_multi_remove_handle($mh, $conn[$i]);
curl_close ($conn[$i]);
}
curl_multi_close($mh);
print ($res);
exit();

Ruego que alguien me eche una mano.

Gracias!!!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:17.