Post by eugenioCiao a tutti,
ho googlato parecchio ma non sono riuscito a trovare nessun esempio
chiaro su comwe realizzare l'autenticazione per un WS utilizzando le
librerie standard di PHP.
Mi date una mano?
Grazie mille
Eugenio
Ops a quanto pare il cervello era in modalità php4...
Da php 5 in poi:
<?php
try
{
$servizio = 'http://www.ecubicle.net/gsearch_rss.asmx?WSDL';
$gsearch = new SoapClient($servizio);
$parametri = array(
'searchPage' => '1',
'gQuery' => 'php',
'numOfResults' => '15'
);
$result = $gsearch->GetSearchResults($parametri);
print_r($result);
unset($gsearch);
}
catch (SoapFault $e)
{
print_r($e);
}
?>
praticamente devi solo indicare il servizio e un array coi parametri.
per conoscere tutti i metodi messi a disposizione da un webservice puoi
usare un brutale:
<?php
try
{
$servizio = 'http://www.ecubicle.net/gsearch_rss.asmx?WSDL';
$gsearch = new SoapClient($servizio);
print_r($gsearch->__getFunctions());
unset($gsearch);
}
catch (SoapFault $e)
{
print_r($e);
}
?>
mentre per i parametri devi fare riferimento al wsdl.
comunque li vedi perchè se lo chiami a cazzo di solito nella risposta ci
sono indicazioni tipo ad esempio questo servizio se chiamato con
parametri sbagliati risponde:
Parameter name: input
at System.Text.RegularExpressions.Regex.IsMatch(String input)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String
pattern)
at gsearch_rss.GetSearchResults(String searchPage, String gQuery,
String numOfResults)
--- End of inner exception stack trace ---
[faultcode] => soap:Server
[detail] =>
)
quindi capisci che i parametri sono tre stringhe e pure dai nomi si
capisce cosa fanno.... comunque se un servizio viene offerto come
webservice di solito c'è un minimo di documentazione e non devi fare
brutalità del genere.
al limite puoi andare a leggere il wsdl e cercare qualcosa del tipo:
<s:element minOccurs="0" maxOccurs="1" name="searchPage" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="gQuery" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="numOfResults"
type="s:string" />
scusa per la risposta con nusoap fino alle 11 il cervello è staccato.
Michelangelo