4

バックエンド サーバーからファイルをダウンロードするには、ASIHttpRequest を使用する予定です。アクションの前に、ここに質問を投稿して、この機能の詳細を確認してください。

与えられたサンプル ソース コードとして: (リモート JPG ファイルのダウンロードを示します)

    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];

私の質問は次のとおりです。

  1. MP3、ビデオファイルなど、あらゆる形式のファイルをダウンロードできますか? ファイルサイズ、タイムアウトなどの制限はありますか?

リモート ファイル パス " http://allseeing-i.com/ASIHTTPRequest/tests/images/small-image.jpg "を設定するだけで、HTTP プロトコルを使用してすべてをリモートでダウンロードできるようです。

  1. レジューム機能はどうですか?

YES/NOによる「RESUME」の設定を提供しますが、通常の再開機能としては十分ですか?たとえば、ファイルが大きい場合は一時停止し、前回から再開したいと考えています。

ご意見やご感想をお寄せいただきありがとうございます。これをプロジェクトに採用する前に調査する必要があります。前もって感謝します !

4

2 に答える 2

4

これを asi http request group に同時に投稿し、そこで回答を得ました。

http://groups.google.com/group/asihttprequest/browse_thread/thread/34eced6759cb7327/47aef091a77331fd?lnk=raot#47aef091a77331fd

(同時に複数の場所に質問を投稿する場合は、少なくとも既に回答を得ているという事実を記録するのが礼儀正しいでしょう!)

回答は次のとおりです (ASIHTTPRequest の作成者である BenC から):

1: はい、どのようなサイズのファイルでもダウンロードできます。唯一の理論上の制限は、デバイスにある空き容量だと思います。

デフォルトでは、リクエストは 10 秒間データを受信しないとタイムアウトになります。リクエストの timeoutSeconds プロパティを設定してタイムアウト時間を長くするか、[ASIHTTPRequest setDefaultTimeoutSeconds:x] でデフォルトを変更できます。これは、ダウンロードが 10 秒以内に完了しなければならないという意味ではなく、10 秒以上停止してはならないということだけに注意してください。

と:

2: はい。再開機能は、特に接続が失われることが非常に一般的な WWAN 接続では、より大きなダウンロードを処理するのに適した方法です。ダウンロードの再開について覚えておくべき 2 つのことは次のとおりです。詳細はドキュメントを参照) - すべてのダウンロードを再開できるわけではありません。ダウンロードするリソースの再開をサーバーがサポートしている必要があります。通常、コンテンツが動的に生成される場合、再開はサポートされません。

于 2010-08-01T16:15:27.327 に答える
2

非常に信頼性の低いネットワーク接続を介して、大きなファイルで同じ問題に遭遇しました。ASIHttpRequest を使用して一部を同時にダウンロードし、完了したらそれらを連結するソリューションを考え出しました。コードは次のとおりです。

https://github.com/anlcan/Happy-Download

于 2012-01-21T22:11:05.503 に答える