Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2011, 19:54
foxvor
 
Fecha de Ingreso: noviembre-2009
Mensajes: 40
Antigüedad: 14 años, 8 meses
Puntos: 2
Exclamación Autenticación en WebService con nuSoap

Hola, estoy intentando conectarme a un WebService utilizando nuSoap. Creo el objeto sin problema alguno, pero al momento de querer utilizar una función del webService obtengo:

wsdl error: Getting https://direccion_servidor?wsdl - HTTP ERROR: cURL ERROR: 7: couldn't connect to host

El servidor requiere autenticación, utilizo la función setCredentials de nuSoap para esto. Leyendo documentación del proveedor (servidor WS) dice que el password lo requieres wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0". Leyendo la documentación: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf que es al cual hace referencia, puedo descartar que el tipo de autenticación utilizada sea Digest. (aunque de cualquier forma ya lo había intentado)

Aqui les dejo el código:

Código PHP:
$usuario '345';
$password 'ppxxx';
$xmlBase file_get_contents('Base.xml');
$wsdl 'https://direccion_servidor?wsdl';
$namespace 'http://otra_direccion';  //con o sin esto es el mismo error

$client = new nusoap_client($wsdl'wsdl');

$err $client->getError();
if (
$err) {
    echo 
'<h2>Error</h2><pre>' $err '</pre>';
}

$client->setCredentials($usuario,$password);
/*$client->setCredentials($usuario,$password,"digest",
                                                 array(
                                                        "realm"  => "digestedaccess",
                                                        "nonce"  => "Ab32Hh49iueg78bdg563jsndjk",
                                                        "nc"        => 0,
                                                         "qop"     => "auth"   
                                                  ));

*/ // El intento con digest, comentado

$result $client->call('funcionLlamada', array('xmlB' => $xmlBase,'titulo' => 'Prueba 1','Conector' => 'FGTTGDEA','Comentario' => 'SRSystem','FileType' => '78978','returnT' => '0'),$namespace);
//Esta es la linea que falla


// Check for a fault: Pasa bien este punto
if ($client->fault) {
    echo 
'<h2>Fault</h2><pre>';
    
print_r($result);
    echo 
'</pre>';
}
else
{
    echo 
'No hubo faults';
    
$err $client->getError();
    if (
$err) {
        
// Display the error
        
echo '<h2>Error</h2><pre>' $err '</pre>';
    } 

Agradecería su apoyo, muchas gracias.