Über download-Datei mit ASIHttpRequest
Plane ich zu verwenden ASIHttpRequest für das herunterladen von Dateien aus dem back-end-server. Vor Aktionen, Fragen stellen, Sie hier zu wissen, mehr über diese Funktion.
Als Beispiel-source-codes gegeben : ( zeigen herunterladen-remote JPG-Datei )
ASIHTTPRequest *request;
request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg"]];
[request setDownloadDestinationPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"1.png"]];
[request setDownloadProgressDelegate:imageProgressIndicator1];
[networkQueue addOperation:request];
Meine Fragen sind:
- Kann es download alle Formate Dateien, wie MP3, video-Datei, etc ? Irgendwelche Einschränkungen, i,e, Datei-Größe, Zeit aus ?
Scheinen, wie, die müssen nur das einrichten der remote-Datei-Pfad "http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg", dann kann es download-alles per Remote-Zugriff mit HTTP-Protokoll.
- Wie Sie über die resume-Funktion ?
Bietet es die Einstellung für "RESUME" per JA/NEIN, ist das ausreichend, für die normale resume-Funktion ? Zum Beispiel, wenn die Datei groß ist, angehalten , dann hoffen, Sie wieder aufzunehmen, vom letzten mal.
Vielen Dank für alle Eingaben oder Kommentare, muss ich untersuchen, diese vor dem Erlass dieses in mein Projekt. Vielen Dank im Voraus !
InformationsquelleAutor Forrest | 2010-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du dies geschrieben, auf der asi http request Gruppe zur gleichen Zeit, und bekam eine Antwort:
http://groups.google.com/group/asihttprequest/browse_thread/thread/34eced6759cb7327/47aef091a77331fd?lnk=raot#47aef091a77331fd
(Wenn Sie dabei sind, posten Sie Ihre Frage in mehreren Orten zur gleichen Zeit sein, es wäre zumindest höflich, die zum aufzeichnen der Tatsache, dass Sie habe bereits eine Antwort!)
Antworten waren (von BenC, das ASIHTTPRequest Autor):
1: ja, Sie können download jede Datei, jeder Größe. Ich denke, die einzige theoretische Beschränkung ist die Menge an freiem Speicherplatz auf dem Gerät.
Standardmäßig Anforderungen der Zeit heraus, wenn Sie haben nicht alle empfangenen Daten für 10 Sekunden. Erhöhen Sie die timeout-Zeit durch die Einstellung der timeoutSeconds-Eigenschaft der Abfrage, oder ändern Sie die Standardeinstellungen mit [ASIHTTPRequest setDefaultTimeoutSeconds:x]. Beachten Sie, dass dies nicht bedeutet, ein download-muss komplett in unter 10 Sekunden, nur, es darf nicht stecken bleiben für mehr als 10 Sekunden.
und:
2: ja, die resume-Funktion ist ein guter Weg, um zu behandeln, größere downloads, vor allem auf WWAN-verbindungen, bei denen zu verlieren, die Konnektivität ist sehr viel häufiger. Die beiden Dinge zu erinnern, über die Wiederaufnahme der downloads sind:
- Sie müssen konfigurieren, Anfragen werden wieder im Voraus - wenn Sie möchten, könnte wieder eine Anfrage irgendwann in der Zukunft, müssen Sie es einrichten wieder aufgenommen werden, bevor Sie den download starten (siehe die Dokumentation für details)
- Nicht alle downloads wieder aufgenommen werden kann - der server muss zur Unterstützung der Wiederaufnahme der für die Ressource, die Sie herunterladen. In der Regel fortsetzen wird nicht unterstützt, wenn die Inhalte dynamisch generiert werden.
InformationsquelleAutor JosephH
Ich hatte das gleiche problem mit großen Dateien über sehr unzuverlässige Netzwerkverbindung. Ich habe mit eine Lösung mit ASIHttpRequest zum herunterladen von teilen der gleichzeitig und verketten Sie Sie, wenn Sie fertig. Hier ist der code:
https://github.com/anlcan/Happy-Download
InformationsquelleAutor aimless