View Full Version : 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?UstId_1=DE131177880&UstId_2=NL814075046B01 &Firmenname=Wechseler Vof &Ort=VALKENBURG&PLZ=6301 DR&Strasse=ST. Pieterstr. 6 &Druck=ja
Grüße Malti
camouflage
30-05-17, 14:36
guckst du hier...
http://www.scottklement.com/httpapi/
andreaspr@aon.at
30-05-17, 14:46
Oder mit SQL
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/New%20HTTP%20functions%20added%20to%20SYSTOOLS
Rainer Ross
01-06-17, 13:20
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
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
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/ibmi/library/i-send-receive-user-defined-soap-rest-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/veranstaltungen/64-events/855-workshop-webservices-auf-ibm-i
Herzliche Grüße
Rainer Ross
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
Rainer Ross
22-06-17, 15:12
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.
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.
values systools.urlencode('ST. PIETERSTR. 6','UTF-8') into :text
Rainer Ross
22-06-17, 17:59
Hallo Malti,
ich habe die Lösung gefunden. Die Parameter beim HTTP GET-Request beginnen immer mit ?
Mit diesem String funktionierts
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
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