Visualizzazione dei risultati da 1 a 5 su 5

Discussione: client soap

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    17

    client soap

    Ciao

    qualcuno conosce un metoto automatico per creare un client per web service, partendo dal wsdl?

    ho scaricato SOAP_Toolkit PST ma non sono riuscito a capire come funziona

    mi crea dei file con delle classi ma non capico come richiamarle....

    qualcuno puo' aiutarmi

    oppure esiste qualche altro tool????

    grazie in anticipo...

  2. #2
    basta usare php5

    www.php.net/soap

    per php4 c'è nusoap ma sinceramente non vanno molto bene
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    17
    ok usando soap del php5 non posso creare un client automatico poiche' con le istruzioni
    __GetTypes() e __getFunctions() non riesco a capire senza guardare direttamente il file wsdl quali sono i tipi di dati associati ad una determinata funzione....

    non so se sono stato molto chiaro


    faccio un esempio pratico:

    wsdl del palio di siena : http://www.ilpalio.siena.it/Palio.asmx?WSDL'

    con __getFunctions() mi restituisce:

    PaliiResponse Palii(Palii $parameters)
    dettaglioPalioResponse dettaglioPalio(dettaglioPalio $parameters)
    UltimoPalioVintoResponse UltimoPalioVinto(UltimoPalioVinto $parameters)
    PaliiVintiResponse PaliiVinti(PaliiVinti $parameters)
    PaliiResponse Palii(Palii $parameters)
    dettaglioPalioResponse dettaglioPalio(dettaglioPalio $parameters)
    UltimoPalioVintoResponse UltimoPalioVinto(UltimoPalioVinto $parameters)
    PaliiVintiResponse PaliiVinti(PaliiVinti $parameters)
    ArrayOfDettaglioPalio Palii(string $Anno)
    DettaglioPalio dettaglioPalio(string $Giorno)
    DettaglioPalio UltimoPalioVinto(string $Contrada)
    ArrayOfDettaglioPalio PaliiVinti(string $Contrada)
    ArrayOfDettaglioPalio Palii(string $Anno)
    DettaglioPalio dettaglioPalio(string $Giorno)
    DettaglioPalio UltimoPalioVinto(string $Contrada)
    ArrayOfDettaglioPalio PaliiVinti(string $Contrada)

    con __GetTypes() :

    struct Palii { int Anno; }
    struct PaliiResponse { ArrayOfDettaglioPalio PaliiResult; }
    struct ArrayOfDettaglioPalio { DettaglioPalio DettaglioPalio; }
    struct DettaglioPalio { string Contrada; string Cavallo; string Fantino; string Note; string Cronaca; string DeputatiDellaFesta; string GiudiciDellaVincita; string IspettoriDiPista; string MaestroDiCampo; string Sindaco; string AutoreDrappellone; string DedicaDrappellone; dateTime DataEstrazione; dateTime Data; boolean Ufficiale; boolean Straordinario; boolean OrdineAlCanapeIncerto; boolean Scosso; }
    struct dettaglioPalio { dateTime Giorno; }
    struct dettaglioPalioResponse { DettaglioPalio Carriera; }
    struct UltimoPalioVinto { string Contrada; }
    struct UltimoPalioVintoResponse { DettaglioPalio Carriera; }
    struct PaliiVinti { string Contrada; }
    struct PaliiVintiResponse { ArrayOfDettaglioPalio PaliiVintiResult; }


    cominciamo dalle funzioni: non sono 16 ma solo 4 quelle da richiamare ma lui me le da tutte

    UltimoPalioVinto(string $Contrada)
    Palii(string $Anno)
    PaliiVinti(string $Contrada)
    dettaglioPalio(string $Giorno)


    poi come faccio in automatico a capire il tipo di risposta ad una determinata funzione???


    insomma come faccio a creare un client automatico di questo tipo senza scriverlo a mano e guardare il file wsdl???

    $client = new SoapClient("http://www.ilpalio.siena.it/Palio.asmx?WSDL", array('exceptions' => 0));
    $a=2000;
    $params = array('Anno'=>$a);

    $result = $client->__soapCall('Palii', array($params));

    foreach($result->PaliiResult->DettaglioPalio as
    $risultato) {

    print "Il ".$risultato->Data." ha vinto la contrada ".
    $risultato->Contrada." con ".$risultato->
    Fantino."
    ";

    };


    scusate per il post lungo

  4. #4
    http://devzone.zend.com/node/view/id/689#Heading4

    cercare su google non nuoce Usando il WSDL puoi direttamente chiamare la funzione esposta senza fare null'altro

    per fare un esempio

    $client = new SoapClient('http//path/to/wsdl',
    array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
    $result = $client->NomeFunzione($parametro1,$parametro2....)->NomeFunzioneResult;
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    17
    rse non mi sono spiegato

    $client = new SoapClient('http//path/to/wsdl',
    array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
    $result = $client->NomeFunzione($parametro1,$parametro2....)->NomeFunzioneResult;


    NomeFunzione: come lo ricavo??? con quale funzione in automatico?
    stesso discorso per i $parametro1,$parametro2
    stesso discorso per NomeFunzioneResult

    devo cercare prima le funzioni manualmente.... e scriverle a mano

    siamo al punto di partenza

    se vai su questo link riesci a capire cosa devo fare... una cosa simile

    http://www.apteno.net/code/wsdl.php


    intanto grazie per per il tuo interessamento all'argomento....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.