Delfi master, evoluție înseamnă dezvoltarea de aplicatii web in Delfi (documentare, codul sursă,

Utilizarea serviciilor Web

Ce este un serviciu web

Protocolul SOAP

POST / exemple HTTP / 1.1
User-Agent: Radio Userland / 7.0 (WinNT)
Realizator: localhost: 81
Content-Type: text / xml; charset = utf-8
Conținut-Lungime: 474
SOAPAction: "/ exemple"

Luați în considerare antetul solicitării. Formatul URI nu este specificat în primul șir de interogare. De exemplu, acest lucru ar putea fi doar / sau, la fel ca în exemplu / exemplele noastre.
Trebuie specificat agent utilizator și gazdă. Content-Type, și anume să solicite tipul de conținut, desigur, text / XML. Content-Length - cerere Lwire.
SoapAction - valoarea acestui câmp este utilizat pentru a trimite mesajul, corect mesajele de server de procesor. De obicei, valoarea SoapAction coincide cu primul URI din șirul de interogare.
Organismul cerere este un document în format XML. Root tag-ul SOAP-ENV: învălui acoperă în tag-ul SOAP-ENV: corp, care descrie procedura numita. În acest exemplu, un mesaj descrie o cerere de apel procedură getStateName parametrul statenum egal cu 41.
răspuns de la server într-un apel de succes este după cum urmează:

Mentionam doar cele mai importante puncte:
  • Namespace răspuns aici (tag ) Trebuie să se potrivească cu spațiul de nume în interogare. În acest exemplu, spațiul de nume - m
  • Numele de etichetă care descrie răspunsul sunt modelate prin adăugarea răspunsului cuvânt la numele procedurii numite. În cazul nostru este m: getStateNameResponse

Dezvoltarea serviciilor de Web server de Delphi6

Delphi 6 vă permite să creați atât de server și Web Services clienți. Începem prin luarea în considerare crearea unui server.
Crearea Web Services server de Delphi6 este format din următoarele etape:
  1. Descriere interfata Server, care este, metodele care vor fi disponibile pentru apelul la client;
  2. Punerea în aplicare a metodelor de server;
  3. Crearea unui proiect Delphi și includerea rezultatelor primelor două etape.

descriu Consecvent fiecare dintre etapele.

Descriere Interfață Server


În Delphi, când creați un Web Services sunt disponibile pentru apelarea client descris ca interfețe invokable metode de server. Invokable Interface - o interfață pentru care metodele disponibile RTTI (informații de tip în timpul rulării). Pentru a face interfața unei invokable convenționale suficient pentru a specifica directiva de compilare. După aceea, toți descendenții și interfața în sine va conține RTTI. Ierarhia VCL au deja o astfel de interfață IInvokable. Astfel, atunci când scrieți serverul este mai ușor să moștenească interfața dvs. de la Iinvokable. În plus, trebuie să vă înregistrați interfață în registrul de invocare. Înregistrarea permite serverului pentru a defini o clasă care implementează metodele de interfață, iar clientul pentru a obține o descriere a metodelor acceptate de server. Înregistrarea se face prin apelarea InvRegistry.RegisterInterface în secțiunea de inițializare a unui modul.
Deoarece interfața nu este utilizată numai de către server, dar clientul, este de dorit să-l definească într-o unitate separată Delphi.
De exemplu, vom dezvolta un server care va efectua conversia de bani de la dolari în ruble și vice-versa. IDE Delphi Selectați File / meniu nou / unitate. În modulul gol rezultat definesc interfața serverului:

Rețineți că string [ „“] - aceasta este interfața GUID, de exemplu, să funcționeze corect trebuie să-l genereze, și să nu introduceți manual sau copiați textul de mai sus. GUID generație în IDE Delphi este activat prin apăsarea Ctrl + Shift + G.
În cazul producerii de date de tip scalar mesaje funcții de interfață SOAP apare în mod automat, cu nici un efort suplimentar din partea programatorului. Dacă doriți să utilizați tipuri de date complexe, cum ar fi matrici statice, seturi și clase, trebuie să creați și să înregistrați o clasă care moștenește de la TRemotableXS și metode de suprascriere XSToNative și NativeToXS. Aceste metode converti șirul și reprezentarea binară a datelor unul în celălalt.

Punerea în aplicare a metodelor de server

Dacă nu doriți să moștenească o clasă de la TInvokableClass, trebuie să creați și să înregistrați o metodă fabrică de clasă, care va fi capabil de a crea instanțe ale clasei. Metoda ar trebui să fie de tip TCreateInstanceProc = procedeu (out obj: TObject); În acest caz, trebuie să fie în măsură să se elimine, în cazul în care numărul de link-uri-l folosind clienții vor fi zero. Când vă înregistrați această metodă de clasă InvRegistry.RegisterInvokableClass doilea parametru necesar pentru a transmite numele clasei metodei din fabrică.

Crearea de proiect Servicii Web Application în Delphi

Un ultim pas - crearea proiectului de aplicare. IDE-ul va selecta meniul elementul File / New / Alte file și icon SOAP WebServices Application Server. Web Format cerere Servicii de dialog de selecție va fi afișată. Vom alege formatul CGI. În acest caz, proiectul va fi creat cu modulul de web care conține trei componente: HTTPSoapDispatcher, HTTPSoapPascalInvoker, WSDLHTMLPublish.

THTTPSoapDispatcher primește și procesează mesajele SOAP prin transmiterea acestora să invoce interfețele înregistrate în cerere. Astfel, THTTPSoapDispatcher manager este responsabil pentru mesajele SOAP trimiterea de recepție, distribuție și.
cereri de interpretare și metodele de interfață de apel puse în aplicare de către o altă componentă specificată în proprietatea Dispatcher (HTTPSoapPascalInvoker1). THTTPSoapDispatcher se înregistrează automat cu modulul Web ca avtodispetchera. În acest caz, toate cererile sunt trimise THTTPSoapDispatcher, care vă scutește de obligația de a crea un modul Web cereri de stivuitoare.

Delfi master, evoluție înseamnă dezvoltarea de aplicatii web in Delfi (documentare, codul sursă,

WSDLHTMLPublish1 - componenta activă generează și generează cererea descrierii interfeței client-server.
Apoi, trebuie să vă conectați la fișierele de proiect cu descrierea și punerea în aplicare a interfeței. Pentru a face acest lucru, selectați meniul element proiect / Adăugați la proiect și dialogul care apare, alegeți modulele cu descrierea și punerea în aplicare a metodelor de interfață în IDE. Puteți compila proiectul și a pus fișierul executabil care rezultă în directorul pentru scripturi CGI server Web.
Serverul este gata de funcționare.

Dezvoltarea Web Servicii client Delphi6

Delfi master, evoluție înseamnă dezvoltarea de aplicatii web in Delfi (documentare, codul sursă,

Salvați-l într-un fișier Client.xml. Deci, într-un fel sau un alt fișier cu detalii în format XML sa dovedit a fi în mâinile noastre, este necesar să-l exporte în Delphi. Când exportați va genera modulul Delphi cu descrierea interfeței în Object Pascal. Selectați meniul File / New / Altele, mutați în fila WebServices și selectați pictograma Importator Web Services. În acest caz, ecranul va descrie dialogul de import.

Delfi master, evoluție înseamnă dezvoltarea de aplicatii web in Delfi (documentare, codul sursă,

Utilizați butonul Browse pentru dialog, observăm fișierul Client.xml obținut mai devreme, și apăsați butonul Generate. OPA și modul de interfață Delphi definiție este gata. Vom trece la etapa a doua - crearea directă a clientului. Creați o aplicație nouă martor - Fișier / Nou / Application. Pe linia principală de intrare formular poștă și două butoane cu componenta HTTPRIO Marcaje WebServices.

Delfi master, evoluție înseamnă dezvoltarea de aplicatii web in Delfi (documentare, codul sursă,

Stânga pentru a lansa un proiect pentru a efectua și asigurați-vă că este de lucru. În acest articol, am considerat doar cel mai simplu exemplu. Sper că va deveni pentru tine un start bun în dezvoltarea de noi tehnologii Web.