0

数か月ごとに更新されるPDFをダウンロードするアプリがあり、特定のPDFをダウンロードするたびに、1文字を含む.txtファイルもダウンロードします。更新されたPDFをサーバーにアップロードするたびに、サーバーの.txtファイルに文字数を1つずつ作成します。

ユーザーがアプリの[更新]ボタンをタップすると、サーバーからの.txtファイルの文字列とローカルの.txtファイルの文字列が比較されます。

これは、新しいPDFが利用可能かどうかを確認するための非常に軽量な方法ですが、自分のPDFファイルごとに.txtファイルを作成せずに、これを行うためのより良い方法またはより軽い方法があるかどうかを尋ねています。サーバ?

助けを提供してくれてありがとう!

これは、新しいPDFをチェックするために使用するコードです。

NSString *documentDirectory = [(AppDelegate *)[[UIApplication sharedApplication] delegate] applicationDocumentsDirectory];

NSString *path = [documentDirectory stringByAppendingPathComponent:@"test.txt"];

NSString *server = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"foo.com/test.txt"] encoding:NSASCIIStringEncoding error:nil];

NSString *local = [NSString stringWithContentsOfFile:path encoding:NSASCIIStringEncoding error:nil];

if(![local isEqualToString:server])
{
   // I Download the new PDF and the new .txt file here;
   // simple NSURLConnection stuff, no need to elaborate
}
4

1 に答える 1

2

頭から離れて、HTTPHEADメソッドを使用して、データではなくヘッダーのみをフェッチできます。ヘッダーの作成日がデータを最後にダウンロードした日付よりも後の場合は、新しいコピーを取得する必要があります。NSURLRequestこれはとで行うことができますNSURLConnection

サーバーがリクエストをサポートしていない場合、HEADまたは他の何かがその使用を妨げている場合は、バージョン/ハッシュ/一意の識別子を含む2番目のTXTファイルを作成できます。代わりにそれをダウンロードして、保存されている値と比較してください。変更された場合は、完全なPDFをダウンロードし、後で参照できるようにバージョンテキストファイルをディスクに保存します。

セキュリティが問題であり、サーバーを信頼できるようにする必要がある場合は、どちらの場合もHTTPSを使用してください。

于 2012-11-25T18:24:41.983 に答える