[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2019
    Beiträge
    2

    HTTPS Seiten vom System I aufrufen

    Hallo,

    ich möchte vom System I google maps aufrufen, weil ich eine Entfernungsberechnung per Postleitzahl Von / Bis machen möchte.

    Nun habe ich bereits gefunden, das mit SQL RPG das aufrufen kann.

    Wie bekomme ich den API Key und kann ich einfach ein RPG Programm mit SQL programmieren, wie unten folgt.

    Ich bitte um Hilfe.

    Siehe Beispiele unten:

    https://maps.googleapis.com/maps/api...?origins=33397 Lange Str. 2+DE&destinations=33098 Marienstr. 29+DE&mode=driving&language=de-DE&sensor=false&key={YOUR-API-KEY}



    exec sql values SYSTOOLS.HTTPGETCLOB(
    'https://maps.googleapis.com/maps/api/geocode/xml?address=' concat
    systools.urlencode('Schmalholzstraße 27, 86916 Kaufering','UTF-8') concat
    '&components=countryE','') into :result;

  2. #2
    Registriert seit
    May 2007
    Beiträge
    295
    Hallo.

    Diesen Key bekommst du wenn man sich bei Google anmeldet:
    https://developers.google.com/maps/d...ed/get-api-key

    Natürlich kann man ein RPG mit SQL programmieren.
    Schau dich mal im Internet um.
    Es gibt mittlerweile viele Beispiele im Internet.
    Unter anderem https://www.rpgpgm.com

    Tipp: Ich persönlich würde aber abraten diese HTTPGETCLOB oder HTTPGETBLOB immer interaktiv ausführen zu lassen da sie für jede Sitzung eine JVM im Hintergrund starten.
    Besser wäre es diese Angelegenheiten in den Hintergrund sprich Batch zu verbannen.
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  3. #3
    Registriert seit
    May 2019
    Beiträge
    2
    Danke für die Info, werde das ausprobieren.

    Es wird sich um einen Batch Job handeln.

  4. #4
    Registriert seit
    Aug 2014
    Beiträge
    179
    Hallo,

    mit HTTPGETCLOB sieht das Statement so aus. Die beiden Adressen müssen URL-Encoded werden. Das geht mit URLENCODE

    Code:
    Values SYSTOOLS.HTTPGETCLOB
     ('https://maps.googleapis.com/maps/api/distancematrix/xml?origins=33397+Lange+Str.+2+DE&destinations=33098+Marienstr.+29+DE&mode=driving&language=de-DE&key=deinKey',
      ''
     );
    Ergebnis

    PHP-Code:

    <?xml version="1.0" encoding="UTF-8"?>
    <DistanceMatrixResponse>
        <status>OK</status>
        <origin_address>Lange Str. 2, 33397 Rietberg, Deutschland</origin_address>
        <destination_address>Marienstraße 29, 33098 Paderborn, Deutschland</destination_address>
        <row>
            <element>
                <status>OK</status>
                <duration>
                    <value>2188</value>
                    <text>36 Minuten</text>
                </duration>
                <distance>
                    <value>28748</value>
                    <text>28,7 km</text>
                </distance>
            </element>
        </row>
    </DistanceMatrixResponse>
    Wenn man Bedenken wegen der JVM hat, dann geht es auch mit den AXIS-Tools, mit cURL (ist unter 5733OPS kostenlos verfügbar) oder mit den HTTP-Tools von Scott Klement

    Herzliche Grüße
    Rainer

  5. #5
    Registriert seit
    Aug 2014
    Beiträge
    179
    Die zweite Variante habe ich gleich mit dem Parsen der Werte verbunden

    Code:
     SELECT DauerValue, DauerText, EntfernungValue, EntfernungText FROM
        XMLTABLE('DistanceMatrixResponse/row/element' PASSING
        XMLPARSE(DOCUMENT SYSTOOLS.HTTPGETCLOB(
         'https://maps.googleapis.com/maps/api/distancematrix/xml?origins=33397+Lange+Str.+2+DE&destinations=33098+Marienstr.+29+DE&mode=driving&language=de-DE&key=deinKey',''
        ))
        COLUMNS
         DauerValue            VARCHAR(20) PATH 'duration/value',
         DauerText             VARCHAR(20) PATH 'duration/text',
         EntfernungValue       VARCHAR(20) PATH 'distance/value',
         EntfernungText        VARCHAR(20) PATH 'distance/text'
     );
    Ergebnis

    Code:
    DauerValue DauerText   EntfernungValue EntfernungText
    2188       36 Minuten  28748           28,7 km

Similar Threads

  1. https: aufrufen
    By malti in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 11-07-17, 10:29
  2. HTTPS/SSL Webservice bereit stellen
    By Malte in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-02-17, 11:07
  3. WebService über HTTPS
    By harbir in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-03-14, 14:13
  4. RMTWTR-OUTQ: Seiten: 1* ???
    By cassandra in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 27-08-02, 11:32
  5. Drucker hält nach 100 Seiten an
    By tommeier in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 20-02-02, 16:34

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •