Java ME Bild vom Web-Service aus zurück geben

Dieses Thema Java ME - Bild vom Web-Service aus zurück geben im Forum "Mobile Geräte" wurde erstellt von danielmaann, 4. Nov. 2016.

Thema: Bild vom Web-Service aus zurück geben Hallo zusammen Ich beschäftige mit seit einiger Zeit mit der Programmierung eines Web-Services, welches dann später...

  1. Hallo zusammen
    Ich beschäftige mit seit einiger Zeit mit der Programmierung eines Web-Services, welches dann später von einer Android-App verwendet werden soll. Nunist es so, dass es bei der App um eine instagramähnliche App handelt und somit sollten Bilder hochgeladen werden können und auch angesehen. Der Unterschied zwischen "meiner" App und Instagram ist, dass man bei Instagram Profile privat einstellen kann und somit haben nur die Abonennten einblickauf die Bilder. BEi mir gibt es dieses Menu mit privat nicht sondern alle Bilder sind für alle ersichtlich.

    Wenn ich aber die Bilder auf einen Webserver abspeichern lasse und der Web-Service die den Pfad des Bildes aus der Datenbank holt und diesen zurück gibt, das die App das Bild rendern kann finde ich ein bisschen blöd. Aus dem Grund, weil man mit Wireshark die Verbindung prüfen kann oder sonst welchen Analyse-Tools und somit hat man dann die Url des File-Server, kann darauf zugreifen und man kann alle Bilder vom Server runterladen oder ansehen.

    Meine Aufgabe ist es folgende...
    Der Zugriff auf den File Server darf nur vom Web-Service erfolgen... aber die Bilder sollte er dann der App übergeben. Beim Bedenken ist es aber blöd, wenn man eine Anzahl von z.B. 45 Bilder als BLOB zurück gibt. Diese äre eine sehr teure Aktion. Wie würdet ihr vorgehen. Wie würdet ihr die Architektur aufstellen?

    PS: Als Framework verwende ich Spring und beim Web-Service handelt es sich um eine Spring-Boot Applikation
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Einfach die Bilder als JSON schicken..
     
  4. @Thallius wie kann man die Bilder als json schicken? den ganzen Stream als Blob darstellen und dies als Json?
     
  5. Ist doch egal. Wie Du es möchtest halt bzw wie es für deine App später am einfachsten ist.
     
  6. Oder halt den Webserver die Bilder ganz normal als Bilder zurückgeben, dürfte mit ResponseEntity oder passendem MediaType problemlos gehen
     
  7. Da musste dann aber bei 45 Bildern 45 Request senden. Bischen unpraktisch.

    Gruß

    Claus
     
  8. @Thallius ja wie wäre es am praktischsten und am schnellsten? wenn ich nur die url sende habe ich ja nicht mehr daraus gemacht weil momentan sende ich eine json zurück und im json befinden sich die url der dateien und dies möchte ich nicht das man mithilfe von analysen-tools die url der server empfangen kann und somit alle bilder anzeigen kann. und wenn ich die blobs sende wird es ein riesiges json sein und es kostet viel zeit alle bilder zu blob umwandeln und dann auf der app wieder den blob zu blider konvertieren.
     
  9. Also so schwer ist das doch wirklich nicht

    Code (Text):

    imagepng($my_img);
    $imageData = ob_get_contents();
    ob_clean();

    $results = array(
      'image'=> base64_encode($imageData)
    );

    $json = json_encode($results);
    echo $json;
     
     
  10. Mit Base64 hat man ⅓ mehr Daten, ob das so viel besser ist als ein paar Requests mehr?
    Und wenn man alle auf einmal sendet, muss man endlos warten (45 Bilder, 1Mb => 60MB Daten), wenn man einzeln lädt sieht man wenigstens was...
     
    tommysenf gefällt das.
  11. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!