Page 1 of 2 1 2 LastLast
Results 1 to 15 of 25

Thread: Postcode Api

  1. #1
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085

    Postcode Api

    Een adres aan de hand van een postcode opvragen.
    Schijnbaar is simpels, maar ik blijf tegen deze vervelende fout aan lopen.
    Click image for larger version. 

Name:	ssl.PNG 
Views:	275 
Size:	7.2 KB 
ID:	7643
    Wat doe ik niet goed?

    Een testprojectje bijgevoegd.
    Een gratis key kan je hier aanvragen

    Peter
    Attached Files Attached Files
    10.4.2, Delphi2010, of Lazarus 2.2.0

  2. #2
    Het starten van de communicatie met https gaat prima hier.
    Maar aan jouw foutmelding te zien gebruik je geen (of niet de goede) openssl dll's.
    Heb je die ook in je exe directory gezet ??

    Maar bij mij loopt ie iets verder kapot met een bad gateway.
    Nu zie ik dat jij een hele rare URL gebruikt met \ om extra headers mee te geven.
    Moet dat in Indy niet met IdHttp1.Request.CustomHeaders.AddValue ??

    Dus zoiets:
    Delphi Code:
    1. const
    2.   Aanroep = 'https://api.postcodeapi.nu/v2/addresses/?postcode=%S&number=%S';
    3. //...
    4. IdHttp1.Request.CustomHeaders.AddValue('accept', 'application/hal+json');
    5. IdHttp1.Request.CustomHeaders.AddValue('x-api-key', Key);
    6. IdHTTP1.Get(Url, Resp);
    7. Resp.Position := 0;
    8. MemoResponse.Lines.LoadFromStream(Resp);

    PS. Vergeet ook niet de position van die Resp op 0 te zetten voordat je deze met LoadFromStream in je memo zet (zoals ik boven laat zien). Anders werkt het niet. Bij mij werkt het prima.

  3. #3
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Op deze site staat onder het kopje developers de aanroepen in veel populaire talen.
    Die van Delphi ontbreekt, ik heb er een uitgezocht die er wel op pascal leek en ben gewoon begonnen...
    Ik ga met jouw tips aan de slag, en kom er op terug.

    Alvast bedankt,
    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  4. #4
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Het heeft iets meer tijd genomen dat wat ik erin wilde steken, maar het werkt :-)

    Het grootste probleem was Indy, ik heb deze geupgraded naar revisie versie 5434.
    Verder wat slordigheden in de URL:
    Trim(EdtPostcode.Text) maar laat een eventuele spatie tussen de cijfers en letters gewoon staan.
    Aanroep = 'https://api.postcodeapi.nu/v2/addresses/?postcode=%S&number=%S'; hier moet wel een dubbele && staan, anders krijg je een number.

    het slotje mag erop

    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  5. #5
    Beste Wok,

    ik ben ook bezig met die postcode Api en loop tegen hetzelfde probleem aan: alert handshake failure. Vreemd dat al mijn andere SSL verbindingen met mijn Indy versie wel goed gaan. Ik gebruik XE-6 en heb ook al de TRestClient geprobeerd. Zelfde probleem. Kun jij vertellen hoe je Indy hebt geupgraded naar versie 5423?

  6. #6
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Als het goed is kun je de laatste (of de gewenste) versie uit de snapshots van Indy halen.

    Welkom op NLDelphi trouwens.
    Last edited by VideoRipper; 30-May-18 at 14:47.
    TMemoryLeak.Create(Nil);

  7. #7
    Hi VideoRipper,

    bedankt! Ik had die site inderdaad ook al gevonden via Stackoverflow geloof ik. Alleen als ik de laatste Indy daarvan afhaal (Indy10_5460.zip) dan zie ik geen enkel verschil met de versie van die ik nu gebruik (10.6.0.5122). de bestanden die ik gebruik zoals bijv. idIOHandler.pas lijken ook allemaal ongewijzigd, met laatste wijziging in 2005. Het probleem doet zich nog steeds voor als ik deze Indy versie in de Delphi source plaats

  8. #8
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085

    Postcode APi

    Hier een stukje code wat werkt, dit was ooit een testje voor een project.
    Wel zelf ff een key invullen.
    Attached Files Attached Files
    10.4.2, Delphi2010, of Lazarus 2.2.0

  9. #9
    Bedankt, maar hetzelfde probleem. Mijn code voor de aanroep is gewoon in orde, het ligt echt aan Indy. Ik ben alleen altijd al aan het klooien met installeren van nieuwe Indy versies. Daarom is mijn vraag eigenlijk hoe installeer ik ook alweer op een correcte manier een nieuwe Indy versie ik gebruik XE6, moet ik de Indy_200 packages hebben daarvoor, en de oude wegdoen?

  10. #10
    Nu Indy versie 10.6.2.5460 geinstalleerd. Nog steeds zelfde probleem, ook met jouw voorbeeldapplicatie

  11. #11
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Brtsch, Kan je jouw versie posten.
    Dan kan ik een kijken of het hier ook problemen opleverd
    10.4.2, Delphi2010, of Lazarus 2.2.0

  12. #12
    Hoi Wok, dank voor het aanbod maar dat heeft echt geen zin, lijkt erg veel op jouw versie en die werkt hier ook niet. Steeds weer die handshake failure, misschien dat mijn open SSL DLL's versies niet goed zijn, maar ja andere server HTTPS requests gaan allemaal goed

  13. #13
    Quote Originally Posted by BrtSch View Post
    Steeds weer die handshake failure, misschien dat mijn open SSL DLL's versies niet goed zijn, maar ja andere server HTTPS requests gaan allemaal goed
    Dat wil niets zeggen. Het kan best zijn dat de server die je nu aanspreekt een bepaalde versie van TLS vereist. En als je dan de verkeerde openssl hebt dan gaat dat niet lukken.

    Pak gewoon eens de laatste van http://indy.fulgan.com/SSL/
    Zorg ervoor dat je je bitness van de openssl match met die van je programm (32 bit bij 32 bit of 64 bit bij 64 bit). Zet alle bestanden uit de zip in je .exe directory en test het nog eens.

  14. #14
    Ik heb de laatste versies geprobeerd 32 en 64 bit. Mijn applicatie is 32 bit op Windows 7 64 bit. Helaas zelfde foutmelding.
    Het gaat wel goed als ik de gratis monitor applicatie "Fiddler" open en de optie "Decrypt HTTPS traffic aanzet", vervolgens de Indy ProxyParams als volgt instel:

    idHTTP.ProxyParams.ProxyServer := '127.0.0.1';
    idHTTP.ProxyParams.ProxyPort := 8888;

    Als Fiddler dan open blijft staan krijg ik het verwachte resultaat te zien.

  15. #15
    Kun je dan in Fiddler zien welke TLS versie gebruikt wordt?

    Je zou de IdSSLIOHandlerSocketOpenSSL1.Method eens op sslvTLS1_2 kunnen zetten en de IdSSLIOHandlerSocketOpenSSL1.SSLVersions op [sslvTLS1_2].
    Maar de api.postcodeapi.nu zou de TLS1.0 ook goed aan moeten kunnen.

    Mmmmmmmm, dit geeft ook een "sslv3 alert handshake failure"
    Code:
    # openssl s_client -tls1_2 -connect api.postcodeapi.nu:443
    CONNECTED(00000003)
    139817320403008:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1399:SSL alert number 40
    Volgens dit is het wel supported
    Code:
    nmap --script ssl-enum-ciphers -p 443 api.postcodeapi.nu
    Als ik vervolgens wel de servername meegeef gaat het goed.
    Code:
    # openssl s_client -servername api.postcodeapi.nu -connect api.postcodeapi.nu:443
    CONNECTED(00000003)
    depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
    verify return:1
    depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
    verify return:1
    depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
    verify return:1
    depth=0 CN = api.postcodeapi.nu
    verify return:1
    ---
    Certificate chain
     0 s:/CN=api.postcode
    etc....
    Deze laatste optie geeft de "Server Name Indication" (SNI) mee.
    https://github.com/IndySockets/Indy/issues/160

    Maar dit zou al langer in Indy moeten zitten.
    1/11/2016 - Client-side SNI support added to TIdSSLIOHandlerSocketOpenSSL
    Client-side support for the TLS SNI extension has been added to TIdSSLIOHandlerSocketOpenSSL More... (link)
    Geen idee waarom dit bij jou in Indy dan niet werkt.

Page 1 of 2 1 2 LastLast

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
  •