1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Web Service Client um Dateien abzurufen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von MandraKobold, 18.11.2011.

  1. MandraKobold, 18.11.2011 #1
    MandraKobold

    MandraKobold Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    59
    Erhaltene Danke:
    2
    Registriert seit:
    18.11.2011
    Hallo,

    ich bin neu hier und wie sollte es anderes sein, habe ich gleich eine Frage.
    Ich habe begonnen Apps zu entwickeln und stehe nun vor einer Frage die ich so nicht im Internet beantwortet bekommen habe.
    Und zwar möchte ich von einem Web Service eine ZIP Datei erhalten.
    Soweit so gut. Alle Tutorials die ich Netz gefunden habe senden, meist, als Antwort einen String.
    Auch gibt es verschiedene Lib's (jar's) die man benutzten könnte, wie bspw. KSOAP2. Auch haben sie die verschiedensten Vor- und Nachteile (grööse, overhead,...) Weiter weiss ich nicht ob es für Android 4, andere möglichkeiten gibt, als wie die bisher bekannten.
    Meine Frage an die, die schön öfter mit Web Servicen (Clients) gearbeiten haben wäre, welche Lib würdet ihr empfehlen, um das oben beschriebene umzusetzten.
    Ich habe etwas 'angst' jetzt ohne grosse Erfahrung die falsche auszuwählen, da mir die nötige Erfahrung fehlt und ich den Wald vor Bäumen bald nicht mehr sehe.
    Vielen Dank, für jegliche Hinweise oder Tips.

    LG
    Mandra
     
  2. Thyrion, 18.11.2011 #2
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,845
    Erhaltene Danke:
    2,450
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Warum per Webservice und nicht direkt über Request + Response?

    Wenn du unbedingt einen Webservice nutzen möchtest, müsstest du die Datei in ein Base64String (oder anderweitig webtauglich kodieren) umwandeln und diesen dann an die aufrufenden Instanz zurückgeben - dabei würde die zu übertragende Datenmenge aber (unnötig) größer (wenn ich mich gerade nicht irre, im Schnitt etwa um 1/3).
     
  3. MichaelS, 18.11.2011 #3
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Beiträge:
    370
    Erhaltene Danke:
    51
    Registriert seit:
    14.08.2009
    Also ich würde dir aus Erfahrung nicht raten so ein "großes" Daten-Format zu wählen. Du solltest dich lieber mit JSON anfreunden bzw. protocolbuffers von Google :)

    Du solltest probieren die Datenmengen so klein wie möglich zu halten. Das Problem ist, dass die meisten Nutzer nicht immer eine stabile HSDPA Verbindung haben und somit ewig "laden". Das kann man vermeiden, wenn man kleine kompakte JSON Pakete schickt :) Jedoch sollte man nicht wieder zuviele rumschicken, da das "Empfangen des ersten Bytes" recht lange auf einem Smartphone dauert. Also am besten ein kompaktes Paket schicken wo alles drin ist, was du benötigst :)

    Desweiteren solltest du auch extrem lange Bezeichner nicht verwenden. Klar sollten die Bezeichner Aussagekräftig sein aber nicht übertrieben ;)

    Gruß
    Michael
     
  4. MandraKobold, 18.11.2011 #4
    MandraKobold

    MandraKobold Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    59
    Erhaltene Danke:
    2
    Registriert seit:
    18.11.2011
    Danke für die Antworten.

    Der Web Service (.NET), der das Paket bereitstellt, existiert bereits.
    Per Anfrage sollte das Paket versendet werden und auf dem Gerät, zur weiteren Verarbeitung, abgelegt werden.
    JSON werde ich mir mal anschauen.
    Was meinst du mit Bezeichner?

    LG
    Mandra
     
  5. MichaelS, 18.11.2011 #5
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Beiträge:
    370
    Erhaltene Danke:
    51
    Registriert seit:
    14.08.2009
    Mit Bezeichner meinte ich den Key im JSON sowas wie CustomHeaderWithSpecialKeysOnTop oder ähnliches :D

    Jedes gesparte Bytes bringt dir was :) Natürlich sollten keine Bezeichner wie "CHWSKOT" dabei rauskommen, wo man schnell den Überblick verliert :) Kurze und Sinnige Bezeichner und das leben geht weiter :D
     
  6. Thyrion, 18.11.2011 #6
    Thyrion

    Thyrion Ehrenmitglied

    Beiträge:
    11,845
    Erhaltene Danke:
    2,450
    Registriert seit:
    21.07.2009
    Phone:
    Nexus 5X
    Sorry, aber ich verstehe immer noch nicht, wieso du dir einen WebService und den ganzen Overhead antun, nur um eine Datei(!) zu transportieren. Für sowas sind doch File-Handler (in der ASP.net-Welt .ashx) geradezu ideal: s. z.B. ASP.NET ASHX Handler Tutorial

    Und auf der Client-Seite setzt du eben einen WebRequest ab, statt eine Methode eines WebSerivce zu nutzen.
     
  7. MandraKobold, 18.11.2011 #7
    MandraKobold

    MandraKobold Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    59
    Erhaltene Danke:
    2
    Registriert seit:
    18.11.2011
    Es ist nicht nur eine Datei
    Innerhalb der ZIP Datei sind einige .xml Dateien und auch Bilder versteckt.
    Dabei handelt es sich um Updates der ursprünglichen Version.
    Und wie gesagt, der Web Service hat schon existiert, ich bin nur ein weiterer
    Client der Daten haben möchte.
     

Diese Seite empfehlen