NSURLConnectionクラスのsendSynchronousRequest:returningResponse:errorメソッドを使用して、ネットワークからNSDataを取得します。
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
私がやりたいのは、戻り値が有効かどうかを確認することです。そこで、以下のように、データの長さと応答ヘッダーの予想される長さを比較しました。
NSData *urlData;
do {
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if ([urlData length] != [response expectedContentLength]) {
NSLog(@"WTF!!!!!!!!! NSURLConnection response[%@] length[%lld] [%d]", [[response URL] absoluteString], [response expectedContentLength], [urlData length]);
NSHTTPURLResponse *httpresponse = (NSHTTPURLResponse *) response;
NSDictionary *dic = [httpresponse allHeaderFields];
NSLog(@"[%@]", [dic description]);
}
} while ([urlData length] != [response expectedContentLength]);
ただし、返されたデータの整合性を確保するのに十分かどうかはわかりません。リモートサーバー上のファイルのチェックサムを確認できません。
あなたの経験や他のヒントを共有できますか?
ありがとう。