Results 1 to 15 of 15

Thread: Mijn eerste SOAP ervaring

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    Mijn eerste SOAP ervaring

    Ik heb de opdracht gekregen om een client applicatie te maken, die d.m.v. webservices tijdens het hele proces gegevens krijgt/verstuurt.
    Om een beetje 'feeling' te krijgen heb ik een aantal dingen gegoogled. Echt veel i.c.m. delphi vind je niet. Op deze site kan je een voorbeeld volgen. Maar die werkt niet meer.
    Van Benno en Marcel gehoord dat je het beste kan testen met soapUI. Leuke tool waar veel in zit en niet altijd begrijpelijk. De demo op youtbe laat het een en ander zien en de starters pagina geeft ook een voorbeeld. Ik heb het voorbeeld gevolgd van een currency-converter. Demo project aangemaakt en de WSDL gedownload. D.M.V request 1 op te roepen en daar twee munteenheden in te voeren, kreeg ik (na het drukken op de start button) een wisselkoers terug. Mooi, dat werkt.

    Nu heb ik op basis van het delphi-voorbeeld op het internet een demo gemaakt. Eerst heb ik een import gedaan van de WSDL. Daarna een HTTPRIO op mijn form gezet en daar de properties ingevuld.
    Echter wat ik invul als munteenheid, ik krijg steeds de waarde 0 terug. Natuurlijk doe ik iets fout. Maar wat? Kan iemand mij vertellen of ik mijn demo goed heb opgebouwd?

    Op dit moment heb ik nog D2009 tot mijn beschikking, maar XE7 komt er aan.
    Attached Files Attached Files
    Delphi is great. Lazarus is more powerfull

  2. #2
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    In het verleden heb ik ook wel eens wat met soap geëxperimenteerd.

    Hier een Btw nummerchecker van Dr.bob
    Attached Files Attached Files
    10.4.2, Delphi2010, of Lazarus 2.2.0

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Heeft dat gewerkt, Peter. Wat ik ook invoer (foute en echte BTW nummers), ik krijg alleen maar een foutmelding invalid input.

    Ik zie ook dat hier geen gebruik wordt gemaakt van HTTPRIO.
    Delphi is great. Lazarus is more powerfull

  4. #4
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    ja :-) zie pm
    10.4.2, Delphi2010, of Lazarus 2.2.0

  5. #5
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    210
    In de WSDL import unit is een CurrencyConvertorSoap interface gedefinieerd.
    Delphi Code:
    1. CurrencyConvertorSoap = interface(IInvokable)
    2.   ['{A1817D10-F9A2-B6F6-30E2-8FFB22ABBD60}']
    3.     function  ConversionRate(const FromCurrency: Currency; const ToCurrency: Currency): Double; stdcall;
    4.   end;
    Als ik deze interface gebruik, bijvoorbeeld bij Engelse ponden en euro's, dan lukt het.
    Delphi Code:
    1. converter := (HTTPRIO1 as CurrencyConvertorSoap).ConversionRate(Currency.GBP,Currency.EUR);

  6. #6
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,133
    Zie ook mijn probeersels vanaf deze post. (Toentertijd ben ik er op een gegeven moment mee gestopt omdat de Europese commissie aan hun SOAP server bleef sleutelen zonder backwards-compatibility. Wellicht is een en ander nu wat stabieler.)
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Erwin, die heb ik ook gezien. Alleen had ik verwacht dat ik met een string deze kon uitvoeren, maar klaarblijkelijk moet ik de string omzetten met een typeformat.

    Albert, ik ga er na kijken. bedankt.
    Delphi is great. Lazarus is more powerfull

  8. #8
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Omgezet naar currency en dat werkt.
    Delphi Code:
    1. FromCur := Currency(GetEnumValue(TypeInfo(Currency),EMntFrom.Text));
    2.   ToCur   := Currency(GetEnumValue(TypeInfo(Currency),EMntTo.Text));
    Nu kijken naar de voorbeelden van NGLN
    Delphi is great. Lazarus is more powerfull

  9. #9
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik moet wachten tot ik toegang krijg tot de server........

    In ieder geval weet ik dat de link een https is. Betekent dat dat ik moet werken met certificaten. Met soapUI kon ik gewoon de WSDL uitlezen.
    Delphi is great. Lazarus is more powerfull

  10. #10
    Betekent dat dat ik moet werken met certificaten.
    Nee maar wel met https. In indy of Synapse volstaat het dan om de SSL Dll's toe te voegen in je bin map. Of dat voor HttpRio ook voldoende is weet ik niet.

  11. #11
    Of je moet werken met certificaten hangt af van het doel van het certificaat. Als het alleen om encryptie van gegevens gaat hoef je niets te doen, zoals Benno al zei. Als het ook gaat om controle van de andere partij moet je tenminste controleren dat het om een geaccepteerd en gevalideerd certificaat gaat en eventueel zelfs de inhoud van dat certificaat controleren.

    Het is dus wel goed om onderling af te spreken wat het doel van het certificaat is.
    Marcel

  12. #12
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik kom er even niet uit.
    Je moet toch altijd de WSDL importeren om te weten welke gegevens je kan versturen naar een webservice of kan je ook volstaan met een eigen bestand?
    Delphi is great. Lazarus is more powerfull

  13. #13
    Jan
    Join Date
    Oct 2007
    Location
    Mijdrecht
    Posts
    906
    De WSDL importer genereert de source voor de interface van de soap service. De WSDL kun je importeren vanaf een url of een file.
    Uiteraard kun je ook de interface zelf in elkaar sleutelen, maar de kans op fouten is dan erg groot.

  14. #14
    De beste manier is inderdaad gebruik maken van die wsdl importer of een andere tool die dat kan.

    Maar niets stopt je om gewoon zelf een XML te vullen en posten natuurlijk.

  15. #15
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Langzaam aan word ik steeds wijzer door lezen lezen lezen ..........
    Delphi is great. Lazarus is more powerfull

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •