Web Service Client um Dateien abzurufen

M

MandraKobold

Ambitioniertes Mitglied
3
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
 
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).
 
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
 
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
 
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
 
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.
 
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.
 

Ähnliche Themen

B
Antworten
4
Aufrufe
406
bb321
B
S
Antworten
33
Aufrufe
2.516
Sempervivum
S
G
Antworten
8
Aufrufe
1.156
gnome2012
G
Zurück
Oben Unten