(CC) Image als GET Response eines REST Service verarbeiten

22. Februar 2013 08:31

Hallo zusammen,

nun brauch ich nach längerer Zeit auch mal wieder euren Rat ;) Es geht um folgendes :

Ich nutze eine XMLHTTP Automation von Microsoft ('Microsoft XML, v6.0'.XMLHTTP) um einen REST Service anzusprechen. Das funktioniert auch soweit ohne Probleme. In der Regel gibt mir der Service bei einem GET immer eine XML Struktur zurück. Über die Zuweisung autoXMLDocOutput ('Microsoft XML, v6.0'.DOMDocument) := autoXMLHTTP.responseXML kann ich auch direkt damit arbeiten. In einzelnen Fällen gibt mir der Service allerdings keine XML Struktur zurück. Ist der Rückgabewert vom Typ text/plain;charset=us-ascii lässt sich das noch problemlos mit autoXMLHTTP.responseText handeln, aber wie muss ich vorgehen bei einem Rückgabewert vom Typ image/jpeg ? Hier komme ich momentan nicht wirklich weiter.

Hoffe einer von euch kann mir da helfen und hat u.U. ein paar Denkanstöße ;)
Schon mal besten Dank im Voraus.

Grüße
Chris

Re: (CC) Image als GET Response eines REST Service verarbeit

22. Februar 2013 09:53

Hi,

2 Fragen:

NAV 2009 R2?

Wieso bekommst Du einmal Daten aber dann auch die Möglichkeit über den gleichen Weg Binary daten?

Re: (CC) Image als GET Response eines REST Service verarbeit

22. Februar 2013 10:36

Hallo

aber wie muss ich vorgehen bei einem Rückgabewert vom Typ image/jpeg ?


Was willst Du mit dem jpeg dann tun?

Gruss

Re: (CC) Image als GET Response eines REST Service verarbeit

22. Februar 2013 10:52

Jupp, ist 2009 R2. Ich bekomme unterschiedliche Rückgabewerte weil es auch unterschiedliche Aufrufe sind, z.B. http://localhost:8004/sol/devices gibt mir eine XML zurück und http://localhost:8004/sol/devices/65b32aa62981/result ein Image.

Wie ich das Bild später weiterverarbeite mache ich momentan erstmal davon abhängig was aus Navision heraus überhaupt möglich ist ;) Wenn ich es anzeigen lassen kann, lasse ich es anzeigen, wenn ich es speichern kann, speicher ich es. Der Zugriff auf das Bild an sich, egal in welcher Form, steht erstmal im Vordergrund.

Re: (CC) Image als GET Response eines REST Service verarbeit

22. Februar 2013 11:05

Bei einem Kunden lesen wir jpeg-Bilder aus URLS und legen die Bilder in NAV in BLOB-Felder ab.
ca. so:
Code:
IF WinHttp.Status <> 200 THEN
    EXIT(FALSE);
  TempBlob.INIT;
  Variant := WinHttp.ResponseStream;
  InStrm := Variant;
  BigText.READ(InStrm);
  TempBlob.Blob.CREATEOUTSTREAM(OutStrm);
  BigText.WRITE(OutStrm);

Später kommt dann die Konvertierung in BMP, so dass NAV die Bilder auch zeigen kann.
Gruss