Tema: php ir soap webservice
Autorius: Jornada Del Muerto
Data: 2012-10-08 17:15:49
Sveiki,

    Prireike realizuot prisijungima ir querinima microsoftinio soap webservice'o is PHP, prasikrusau va vakar bandydamas su SoapClient (http://php.net/manual/en/class.soapclient.php) ir dar su nusoap ( http://www.scottnichol.com/nusoapintro.htm ), del nusoap gal truko pavyzdzio kaip tiksliai accessint standartini MS webservice'a... 

    Pakolkas adekvataus rezultato taip ir nepavyko gauti. Jeigu kam teke naudoti ir sekmingai tai pavyko padaryti, gal galit pasidalinti ka naudojot? ar kokiu pavizdziu veikianciu :) Apie pati PHP SoapClient kiek skaiciau tai ten daug liaudies rekia, kad yra kruvos bugu, nesusiderina su auksciausios versijos WSDL ir t.t... O reikia greito/pigaus sprendimo :)

    Darau mazdaug taip:

 try {
  $client = new SoapClient(
   "http://url:xxx/serviso-failas.asmx?WSDL"
   ,array(
    "trace" => 1, 
    "exceptions" => 1,
    )
   );
         } catch (SoapFault $fault) { 
            $error = 1; 
            print("<p><b>Fault code: </b>".$fault->faultcode."<b>, Fault string: </b>".$fault->faultstring.
            "</p>"); 
   
   print_r($client);
        }     

  $functions = $client->__getFunctions();
  echo '<textarea style="width:50%;float:left;" cols="20" rows="10">'; print_r($functions); echo '</textarea>';
  $types = $client->__getTypes();
  echo '<textarea style="width:50%;float:left;" cols="20" rows="10">'; print_r($types); echo '</textarea>';

Iki sicia viskas veikia, grazina tiek functions tiek types, bet kai tik darau Web Metodo requesta taip ir gaunu errora, kad nepavyko prisijungt, taip pat dar ir buna palaukimas lyg bandytu ir neiseitu pasijungt.

Tiesa pas mane webservisas su nestandartiniu portu, bet bandziau ir proxy port SoapClient options nurodyti tai nieko gero, o parametrai 3 (kiek skaiciau buna bugas kazkoks php su daugiau nei 2 parametrais) + vienas is ju complex type, nors yra viens testinis metodas be parametru jokiu, tai su juo irgi taspats darosi....


P.S. Gal koki kita sprendima naudojat?


JDM.