Web Services

di marianzo il
36 risposte
Buongiorno a tutti
Devo creare un programma Web Services Client.
Qualcosa mi dà una dritta su come crearla

Grazie mille a tutti

Marianzo

36 Risposte

  • marianzo ha scritto:


    Devo creare un programma Web Services Client.
    Qualcosa mi dà una dritta su come crearla
    Direi che puoi tranquillamente prendere per buone tutte le risposte che ti sono già state fornite in passato, quando hai posto la stessa domanda, usando una forma altrettanto astratta e generica, senza dare indicazioni precise, per poi abbandonare la discussione e aprire successivamente questa, uguale identica, a distanza di due anni.

    Ciao!
  • Ciao Marco

    se ti fornisco il wsdl mi aiuti a creare le chiamate al servizio?

    Grazie Mille
  • Il forum non serve ad avere consulenza personale.
  • Scusate
  • Qualcuno può aiutarmi?

    Grazie Marianzo
  • marianzo ha scritto:


    Qualcuno può aiutarmi?
    Ti è già stato detto (più volte) quali sono le informazioni che mancano: se non rispondi nel merito, inutile continuare a chiedere aiuto così, senza un senso.
  • marianzo ha scritto:


    se ti fornisco il wsdl mi aiuti a creare le chiamate al servizio?
    Provo a rispondere a questa, fermo restando che l'aiuto non può essere la spiegazione "per filo e per segno" di tutto ciò che bisogna fare per utilizzare un servizio online (per questo esiste la documentazione, i libri, i corsi e il resto), né l'implementazione del progetto al posto tuo.

    Detto questo, quando si ha a disposizione il WSDL, è molto semplice interfacciarsi con il Web Service in Delphi: è sufficiente usare proprio il WSDL per costruire un "proxy", ossia una classe da utilizzare che fornisce metodi con lo stesso nome di quelli offerti dal servizio, ma che dietro le quinte gestisce tutte le dinamiche di passaggio parametri e invocazione dell'endpoint via HTTP del servizio stesso.

    Usa la funzionalità disponibile nell'IDE di Delphi per importare il WSDL, ossia la voce di menu [Component|Import WSDL...], per generare automaticamente la unit che costituisce il "wrapper" (o proxy, come detto sopra) del servizio.

    Tutte le altre informazioni le trovi nella documentazione ufficiale di Delphi (se non stai usando l'ultima versione, fai riferimento alla documentazione della tua, anche se grossomodo non dovrebbero esserci molte differenze).

    Ciao!
  • Buongiorno Marco
    sto utilizzando 11.1 questo è quello che ho creato ma con errori

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Autenticate : SoapAutenticazione;
    Olio : SilosTypeInput;
    Cuaa : CUAAType;
    Soggetti : SoggettiInput;
    Service : InterService;
    OutPut : EsitoResponseType;
    Vettore : ArrayofSoggettiInput;
    begin

    // capture interface to service
    Service := icqrfWSOlio.GetInterService();


    Autenticate := SoapAutenticazione.Create;

    Autenticate.username := 'AAAAAAA';
    Autenticate.password := 'BBBBBBB';
    Autenticate.nomeServizio := 'SoggSiRO';
    // cuaa.
    Soggetti := SoggettiInput.Create;
    Soggetti.idRichiesta := 'hdfgkjdfhg';


    Cuaa := CUAAType.Create;
    Cuaa.CodiceFiscalePersonaFisica := 'fhgfhgfhgfhfhg';


    Vettore := ArrayofSoggettiInput.Create;


    Vettore[1].IdenFiscaleSoggetto.CodiceFiscalePersonaFisica := '46646464646';
    Vettore[1].CodiSogg := '10';
    Vettore[1].DenoSoggetto := 'hgjgjgj';
    Vettore[1].Indirizzo := 'yyyyyy';
    Vettore[1].CodiceNazione :='IT';
    Vettore[1].CodiceIstatProvincia := '012';
    Vettore[1].CodiceIstatComune := '125';

    Vettore[2].IdenFiscaleSoggetto.CodiceFiscalePersonaFisica := '12345678901';
    Vettore[2].CodiSogg := '11';
    Vettore[2].DenoSoggetto := 'jhgjh jghjgjh';
    Vettore[2].Indirizzo := 'VIA SCAPPA, 10';
    Vettore[2].CodiceNazione :='IT';
    Vettore[2].CodiceIstatProvincia := '015';
    Vettore[2].CodiceIstatComune := '456';

    // build the request
    OutPut := Service.SoggSiRO(Vettore);

    end;


    se hai possibilità di aiutarmi

    Grazie in anticipo
  • marianzo ha scritto:


    sto utilizzando 11.1 questo è quello che ho creato ma con errori
    [...]
    se hai possibilità di aiutarmi
    Errori di che tipo?
    Errori di compilazione?
    Errori restituiti dal server?
  • Ciao Marco

    OutPut := Service.SoggSiRO(Vettore);

    errore su Vettore E2010 incompatibile SoggettiInput e ArrayOfSoggettiInput

    Grazie
  • marianzo ha scritto:


    OutPut := Service.SoggSiRO(Vettore);
    errore su Vettore E2010 incompatibile SoggettiInput e ArrayOfSoggettiInput
    Mi pare che il messaggio dica tutto: al metodo SoggSiRO() va passato un valore di tipo SoggettiInput, mentre nel codice riportato viene passato Vettore che è di tipo ArrayOfSoggettiInput.

    La struttura passata non è quella corretta che il metodo si aspetta di ricevere, quindi bisogna creare e valorizzare una istanza di quella effettivamente richiesta (SoggettiInput).

    Non conosco il modello dei dati del WS, quindi non posso essere più specifico, ma il compilatore mi pare sia abbastanza preciso nell'indicazione.
  • Vettore : SoggettiInput;

    Vettore.ElencoSoggettiInput[1].Indirizzo := 'tttttt';

    errore access violation $C0000005
  • marianzo ha scritto:


    Vettore : SoggettiInput;
    Vettore.ElencoSoggettiInput[1].Indirizzo := 'tttttt';
    errore access violation $C0000005
    Quella proprietà ElencoSoggettiInput dell'oggetto Vettore dovrà essere inizializzata in qualche modo, prima di poter essere utilizzata per accedere a un elemento, e l'indice sospetto che debba partire da zero come vale per tutti gli array o le liste in Delphi.

    Al netto dell'interfacciamento al WS, quante altre applicazioni hai scritto in Delphi?
    Conosci almeno i fondamentali del linguaggio e dell'ambiente?
  • Ho scritto diverse applicazioni ma web service nessuno
Devi accedere o registrarti per scrivere nel forum
36 risposte