PDA

View Full Version : https: aufrufen



malti
30-05-17, 13:41
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

malti
22-06-17, 14:22
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

malti
11-07-17, 09:29
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