Hallo liebe Forumsteilnehmer,

kann mir jemand bei folgender Problemstellung helfen?

Wir müssen öfter Webservices von RPG aus aufrufen. Früher haben wir das mit der LIBHTTP von Scott Klement gemacht. In letzter Zeit nutzen wir dazu fast immer die SQL Funktionen von IBM (z.B. systools.httpGetClob).

Leider hat IBM diese Funktionen in Java implementiert. Bei Erstaufruf einer Funktion dauert es immer mehrere Sekunden, bis die JVM hochzogen wurde. Wenn man die Sitzung dann länger nicht benutzt, dauert es wieder einige Zeit, bis die JVM wieder "reaktiviert" wurde.

An bestimmten Programmstellen ist uns das zu langsam. Deshalb überlege ich, ob man das nicht doch wieder "manuell" mit den Funktionen aus LIBHTTP machen sollte.

Wenn ich so ein Tool (ein Serviceprogramm) schreiben würde, das eine url und einen header bekommt und das Ergebnis dann als String zurückliefert, würde ich das gerne etwas zukunftssicherer bauen. Das heißt, ich würde die Parameter des Tools gerne UTF-8 fähig machen. Da bleibt mir dann ja nichts anderes übrig, als die Parameter und den Rückgabewert mit ucs2 oder varucs2 zu definieren, denke ich.

Die Frage ist, ob die Scott Klement Tools mit so einem double Byte character Set umgehen können? Hat da schon jemand Erfahrung?

Außerdem eine weitere Frage: Wir haben eine relativ alte Version der LIBHTTP im Einsatz. Inzwischen kann man bei Scott Klement die Version 1.39 herunterladen. Kann ich die alte Lib einfach durch die neue austauschen? Gibt es da Kompatibilitätsprobleme?

Hat vielleicht jemand ein (möglichst einfaches) Code Snippet, das den Aufruf eines Webservices für das gegebene Problem enthält.

Bisher haben wir Codes, die etwa das folgende tun:
Code:
url = 'http://test.api.';

// Header setzen:
http_xproc( HTTP_POINT_ADDL_HEADER : %paddr(setHeader));

// URL aufrufen:
rc = http_url_get_raw(url:1:%paddr(getResult):60);

HTTP_xlatep(retlen:%addr(retdata):TO_EBCDIC);
Im Voraus vielen Dank!
Dieter