[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    http_url_get mit unicode

    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Scott stellt ja ebenso auch die Quellen zur Verfügung.
    Schau mal nach, ob in den Quellen nicht sowieso alles als Character und daher Binär verwendet wird.
    Dann hast du keine Probleme.
    Du benötigst nur eine Konvertierung zwischen UTF8 (CCSID 1208) und UCS2, was im ILERPG durch Definitionen und Zuweisung erreicht wird.

    dcl-s MyUnicode varucs2(100);
    dcl-s MyUtf8 varchar(200) ccsid 1208;

    MyUnicode = MyUtf8;
    MyUtf8 = MyUnicode;

    Scott arbeitet dann automatisch mit UTF8, nur deine Aufrufe müssen halt umwandeln.

    Ggf. muss man auch einen Overlay definieren damit der Compiler stillhält:
    dcl-ds MyDs;
    MyUtf8 varchar(200) ccsid 1208;
    MyChar varchar(200) pos(1);
    end-ds;
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... dürfte eigentlich nicht zu schwierig sein, eine HTTPGETCLOB zu schreiben, die das ordentlich macht - sprich: auf einer prestarted JVM läuft.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Vielen Dank für eure Antworten.

    Ich habe gerade in einem Telefonat mit Rainer Ross noch eine ganz neue Idee erhalten, das Problem zu lösen. Und zwar gibt es von IBM die sogenannten axis-Tools. Die scheinen genau die Funktionen zu bieten, die ich suche. Man benötigt dann gar keine externe Lib von Scott Klement, sondern kann die von IBM direkt mitgelieferten nativen Tools nutzen.

    Rainer hat mir die Nutzung der Tools sehr ausführlich geschildert und sich sehr kompetent und hilfsbereit gezeigt. Dafür nochmals herzlichen Dank!

    Auch nochmals Danke an die anderen Antwortenden!

    Ich denke, meine Frage hat sich damit erledigt.

    Dieter

  5. #5
    Registriert seit
    Feb 2017
    Beiträge
    41
    Die Axis Bibliotheken kann ich auch nur empfehlen. Der Entwickler seitens IBM war bisher auch immer sehr hilfsbereit und offen für neue Implementierungswünsche.
    Wir haben bei uns das Tool noch in ein Service Programm gekapselt, um die Benutzung zu vereinheitlichen.

    Gruß,
    Manuel

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Hallo Manuel,

    genau diese Kapselung in ein Serviceprogramm werden wir auch vornehmen.

Similar Threads

  1. Clob als Unicode definieren
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-12-18, 14:06
  2. Konvertieren in Unicode
    By Rainer Ross in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 28-10-16, 17:16
  3. Unicode - Performance weg
    By spiceisnice in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 21-10-14, 18:06
  4. CRLF bei SAP-Unicode-System
    By NollW in forum NEWSboard SAP
    Antworten: 4
    Letzter Beitrag: 12-07-07, 08:58
  5. CRLF bei SAP-Unicode-System
    By NollW in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 12-07-07, 08:58

Berechtigungen

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