SOAP.. aiuto

devo usare le classi soap del pear in modo molto "banale" per usare delle funzioni in perl scritte su un'altra macchina invocandole dalle mie pagine in php...

<?
require_once ("SOAP/Client.php");
$client = new SOAP_Client("http://mio_user:mia_password@mia_url/xxx.cgi");

   //imposto dei parametri
   $params = array("class" => 3);

   //chiamata al server soap
   $response = $client->call("echo", $params, array('namespace'=> 'urn:DNS'));

//print_r($response);
?>

dove "echo" è una funzione stupida che legge e ritorna il valore di "class"

nell'oggetto $response però mi viene ritornato l'errore "HTTP Response 401 Authentication Failed" e non capisco perchè...

qualcuno sa aiutarmi!!

grazie

inviato 10 anni fa
manerg
X 0 X

Prova così:

<?php
require_once ("SOAP/Client.php");
$proxy=array('proxy_user'=>'mio_user','proxy_pass'=>'mia_password');
$client = new SOAP_Client("http://mia_url/xxx.cgi",false,false,$proxy);

//imposto dei parametri
$params = array("class" => 3);

//chiamata al server soap
$response = $client->call("echo", $params, array('namespace'=> 'urn:DNS'));

print_r($response);
?>

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

niente da fare... stesso errore! :dunno:

cosa può essere?

risposto 10 anni fa
manerg
X 0 X

Sembra che si tratti di un problema di autenticazione. Il server SOAP è tuo o è un servizio di terzi? Che tipo di autenticazione richiede? Le credenziali (nome e password) sono corrette?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

il server soap è della azienda per cui lavoro... le credenziali dovrebbero essere giuste tant'è che se mi connetto col browser direttamente alla cgi (usando quelle credenziali) la esegue... mi sbaglio?

se stampo l'oggetto $client contiene in fondo una parte così:

    [_myfaultcode] => Client
    [fault] => 
    [_debug] => 
    [_default_error_mode] => 
    [_default_error_options] => 
    [_default_error_handler] => 
    [_error_class] => SOAP_Fault
    [_expected_errors] => Array
        (
        )

non so se può essere utile... l'oggetto non cambia anche se metto delle credenziali sbagliate.

risposto 10 anni fa
manerg
X 0 X

Perché non provi con NuSOAP? E' un pacchetto che puoi scaricare qui:

http://sourceforge.net/projects/nusoap/

Quì trovi la documentazione:

http://www.scottnichol.com/soap.htm

Esempio di SOAP client:

<?php
// Pull in the NuSOAP code
require_once('nusoap.php');
// Create the client instance
$client = new soapclient('http://localhost/phphack/helloworld.php');
// Call the SOAP method
$result = $client->call('hello', array('name' => 'Scott'));
// Display the result
print_r($result);
?>

Per l'autenticazione con NuSOAP si procede così:

$s = new soapclient('...url...');

$s->setCredentials('nome','password');

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ho provato nusoap e in effetti ora riesco a interfacciarmi...

per quanto riguarda php è tutto a posto... mi viene restituito un errore dello script perl che dipende dal server!!! uff c'è sempre qls che non va!!! :tichedoff:

cmq grazie mille Gianni, sei stato come sempre molto utile :)

risposto 10 anni fa
manerg
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda