Results 1 to 6 of 6

Thread: IPStack API gebruiken met REST components in C++ Builder Community Edition

  1. #1

    IPStack API gebruiken met REST components in C++ Builder Community Edition

    Hallo,

    Ik heb een vraag over de REST componenten. Ik gebruik zelf momenteel C++ Builder Community Edition veel, maar dit probleem is hetzelfde in Delphi. Dus dacht, vraag het hier.

    Ik wil de IPStack API gebruiken om informatie van IP-adressen op te vragen. Ik heb al een access-key aangevraagd.

    Mijn probleem is dat ik de volgende URL niet kan maken met de REST componenten:

    https://api.ipstack.com/134.201.250.155?access_key = YOUR_ACCESS_KEY

    Dus:

    https://api.ipstack.com/<IP-adres>?access-key=1234567689

    Ik heb het geprobeerd zoals in dit YouTube filmpje: https://www.youtube.com/watch?v=Wh20zRHqUN8


    Maar dat werkt niet. Weet iemand wat ik verkeerd doe?
    Groetjes,

    Don

    Newbie in Delphi.

  2. #2
    Quote Originally Posted by dvoogd View Post
    Maar dat werkt niet. Weet iemand wat ik verkeerd doe?
    Lekkere probleemomschrijving

    Kun je ook vertellen wat er niet werkt? Heb je wat code die je kunt laten zien (met eventuele foutmeldingen)?

    Wat gebeurd er als je deze URL in de browser gebruikt?

  3. #3
    Ik heb het precies zo gedaan als in het filmpje. Dus geen code gebruikt Ik heb dus de volgende componenten op een form geplaatst: RESTClient, RESTRequest en RESTReponse en een Memo component.
    Ik heb bij de properties van de RESTClient de BaseURL ingevuld (https://api.ipstack.com/). Vervolgens heb ik bij de properties van de RESTRequest de parameters ingevuld bij de property Params. En daar gaat het fout. Ik weet niet goed hoe ik het IP-adres moet invullen... Ik moet de variabele van het IP-adres een naam geven. En die gebruikt hij vervolgens bij het opvragen bij de IPStack API. Ik heb via LiveBindings de Content van RESTResponse gekoppeld aan het Memo component. Vervolgens op RESTResponse ikoon geklikt met de rechtermuisknop en 'Execute' geselecteert.

    Params property waarden van RESTRequest:

    Name Value Kind
    0 123.133.234.456* pkGETorPOST
    access_key 123456789* pkGETorPOST
    output xml pkGETorPOST
    * (is hier een dummy waarde, in werkelijkheid gebruik ik mijn eigen IP-adres en access key)

    Dan krijg ik de volgende response in het Memo component:


    HTML Code:
    <!DOCTYPE html>
    <html class="index">
    
      <head>
      
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
      <link rel="canonical" href="https://apilayer.com/">
      <link rel="shortcut icon" href="apilayer-favicon.ico">
    
      <link rel="stylesheet" href="css/main-no-mobile.css"/>
      <link rel="stylesheet" href="css/fonts.css">
      
      <meta name="description" content="Powerful and Startup-friendly APIs for Developers and Businesses - Currency Conversion, Video to GIF, Email, Phone & VAT Validation, Screenshots, and more.">
      <!--<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">-->
    
      <title>apilayer - Automate What Should Be Automated</title>
    
      </head>
      <body>
      
      <main>
    Groetjes,

    Don

    Newbie in Delphi.

  4. #4
    Die Name=0 voor je IP adres klopt natuurlijk niet (denk ik).

    Ik gebruik voor dit soort grapjes eigenlijk ook nooit REST maar roep gewoon direct de URL aan en vertaal de XML of JSON die ik terugkrijg gewoon zelf.

    Je kunt die IP parameter natuurlijk helemaal weghalen en de baseURL aanpassen naar
    https://api.ipstack.com/134.201.250.155

    Dan heb je daarna alleen de access_key parameter nodig.

    Een andere methode (en ik denk dat dat de standaard bedoelde methode is bij de RESTClient) is de resource meegeven in RestClient1.

    Path to the target REST resource.
    Resource is relative to the base URL of the REST client.
    http://docwiki.embarcadero.com/Libra...quest.Resource

    Dus als je de resource op 134.201.250.155 zet (en de baseURL op https://api.ipstack.com) dan zou het ook moeten werken.

  5. #5
    TDigitalTrain user Hans Brenkman's Avatar
    Join Date
    Mar 2002
    Location
    Weert
    Posts
    1,822
    Misschien een hulpmiddel om e.e.a. te testen en de bijbehorende code te begrijpen is de demo RESTDebugger van Embarcadero, te vinden in C:\program files \Embarcadero\Studio\19.0\source\data\rest\restdebu gger. (Die 19.0 is versie afhankelijk).

    Zo heb ik het gedaan om e.e.a. te begrijpen en als service applicatie een koppeling tussen 2 API's van 2 verschillende leveranciers te bouwen.

    Een ander hulpmiddel is Postman (https://www.getpostman.com/)
    Testen kan niet de afwezigheid van fouten aantonen, slechts de aanwezigheid van gevonden fouten.

    Het is verdacht als een nieuw ontwikkeld programma direct lijkt te werken: waarschijnlijk neutraliseren twee ontwerpfouten elkaar.

  6. #6

    Het werkt nu. :)

    Hoi Rik en Hans.

    Ik weet inmiddels hoe het werkt. Je moet inderdaad bij de RESTRequest component de 'Resource' property gebruiken voor het IP-adres. Dat heb ik nu gedaan en alles werkt prima. Bedankt Rik.
    Hans bedankt voor de tip over de RESTDebugger.
    Groetjes,

    Don

    Newbie in Delphi.

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
  •