Когда я получу код ответа 200 для действительного запроса изображения?Это после того, как все данные были загружены в мой браузер или какое-либо устройство запрашивает изображение?
Я использую библиотеку http://allseeing -i.com / ASIHTTPRequest / длязагрузите изображения в мое приложение для iPad и используйте загрузку непосредственно в файл, а затем удалите файл, если это была ошибка 404 или любой другой код состояния, кроме 200.
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:@"/Users/ben/Desktop/my_file.jpg"];
Проблема в том, что частичные ответы кажутсясохраняются при медленных соединениях, поэтому я получаю пустые или поврежденные изображения.
Вместо этого я решил сохранить поток данных на диск только после того, как получил код состояния 200:
NSURL *url = [NSURL URLWithString: [[NSString stringWithFormat:kProductImagesURL, fileName] stringByAppendingString:tStamp]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setTimeOutSeconds:10];
[request startSynchronous];
int statusCode = [request responseStatusCode];
if (statusCode==200) {
NSData *responseData = [request responseData];
[responseData writeToFile:[savePath stringByReplacingOccurrencesOfString:@"%20" withString:@" "] atomically:YES];
}
Я просто хочу убедиться, что код ответа возвращается только после того, как запрос был выполнен, и все данные были загружены.Я на 99% уверен, что это так, но я не могу позволить себе выпустить еще одно приложение с ошибкой изображения, подобной этой.