[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2005
    Beiträge
    31

    https: aufrufen

    Hallo zusammen,

    habe ich die Möglichkeit aus einem AS400 Programm einen HttPs Aufruf abzusetzen und das Ergebnis zu empfangen?

    https://evatr.bff-online.de/evatrRPC...NL814075046B01 &Firmenname=Wechseler Vof &Ort=VALKENBURG&PLZ=6301 DR&Strasse=ST. Pieterstr. 6 &Druck=ja


    Grüße Malti

  2. #2
    Registriert seit
    Jan 2007
    Beiträge
    905

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508

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

    es kommt auf die Version des Betriebssystems an:

    1) ab 7.1 geht das bei GET und POST Requests mit SQL. Bitte beachten, dass die Parameter = Query_String URL-Encoded sein müssen, wenn Sonderzeichen, Umlaute oder Blanks enthalten sind
    PHP-Code:
    values SYSTOOLS.HTTPGETCLOB(
     
    'https://maps.googleapis.com/maps/api/geocode/xml?address=' concat 
      systools
    .urlencode('Schmalholzstraße 27, 86916 Kaufering','UTF-8'concat
     
    '&components=country:DE',''); 
    Wenn das Ergebnis JSON-Daten sind, kannst Du diese mit JSON_TABLE parsen, XML kannst Du mit XMLTABLE parsen oder mit XML-into verarbeiten

    Im RPG mit embedded SQL sieht es so aus
    PHP-Code:
    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=country:DE',''into :result
    2) ab 7.2 gibt es seit 2016 die AXIS-Tools, hier erscheint demnächst im TechKnowLetter des Midrange Magazins ein Artikel von mir über dieses Thema mit Beispielprogrammen
    https://www.ibm.com/developerworks/i...-messages-trs/

    3) vor 7.1 geht es mit dem Tool von Scott Klement, bei Zugriff über HTTPS muss auf der IBM i noch etwas eingestellt werden, das aber in der Doku enthalten ist.

    Ich habe Anwendungen und Beispiele über diese drei Möglichkeiten und biete in Zusammenarbeit mit der PORTOLAN Commerce Solutions GmbH einen professionellen Praxis-Workshop zum Thema an
    https://portolancs.com/news-center/v...ices-auf-ibm-i

    Herzliche Grüße

    Rainer Ross

  5. #5
    Registriert seit
    Jun 2005
    Beiträge
    31
    Hallo zusammen,

    vielen Dank für die Antworten.
    Ich bringe es nicht hin.

    meine ILE Source

    C CLEAR SFSATZ 210
    C*
    C/EXEC SQL VALUES SYSTOOLS.HTTPGETCLOB(
    C+ 'HTTPS://EVATR.BFF-ONLINE.DE/EVATRRPC' CONCAT
    C+ '&USTID_1=DE131177880' CONCAT
    C+ '&USTID_2=NL814075046B01' CONCAT
    C+ '&FIRMENNAME=WECHSELER VOF' CONCAT
    C+ '&ORT=VALKENBURG' CONCAT
    C+ '&PLZ=6301 DR' CONCAT
    C+ '&STRASSE=ST. PIETERSTR. 6' CONCAT
    C+ '&DRUCK=JA','') INTO :SFSATZ
    C/END-EXEC


    Vielleicht könnt ihr mir noch einen Tipp geben.

    Grüße Malti

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

    zwei Dinge zu dem Problem

    1) Teste den Request am besten mit dem Postman. Das ist ein kostenloses Addon für den Chrome. Ich habe den Request getestet und bekomme den Fehler 404.
    PHP-Code:
    HTTPS://EVATR.BFF-ONLINE.DE/EVATRRPC&USTID_1=DE131177880&USTID_2=NL814075046B01&FIRMENNAME=WECHSELER+VOF&ORT=VALKENBURG&PLZ=6301+DR&STRASSE=ST+PIETERSTR+6&DRUCK=JA 
    2) Die Parameter dürfen keine Umlaute und bestimmte Sonderzeichen enthalten. D.h. sie müssen URL-Encoded werden. Das geht auch mit SQL. Bitte achte darauf, dass & nicht encoded werden darf, da es die Parameter voneinander trennt. Am besten auch die Blanks mit + oder %20 codieren.
    PHP-Code:
    values systools.urlencode('ST. PIETERSTR. 6','UTF-8'into :text 

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

    ich habe die Lösung gefunden. Die Parameter beim HTTP GET-Request beginnen immer mit ?
    Mit diesem String funktionierts
    PHP-Code:
    https://evatr.bff-online.de/evatrRPC?USTID_1=DE131177880&USTID_2=NL814075046B01&FIRMENNAME=WECHSELER+VOF&ORT=VALKENBURG&PLZ=6301+DR&STRASSE=ST+PIETERSTR+6&DRUCK=JA 

  8. #8
    Registriert seit
    Jun 2005
    Beiträge
    31
    Hallo Zusammen,

    ich habe den Fehler gefunden.
    Ich hatte die falsche CCSID eingestellt.
    Mit CHGJOB geändert und dann ist es gelaufen.
    Vielen Dank für Eure Antworten, Sie haben mir vorher schon viel geholfen.

    Grüße Malti

Similar Threads

  1. HTTPS/SSL Webservice bereit stellen
    By Malte in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-02-17, 10:07
  2. RPG-Prozedur aus C# aufrufen
    By svit in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 03-03-16, 11:11
  3. Performance bei MI Aufrufen
    By schatte in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 30-11-14, 15:23
  4. ILE aus /36 aufrufen
    By Norbertf in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-10-14, 20:32
  5. WebService über HTTPS
    By harbir in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 26-03-14, 13:13

Berechtigungen

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