Intereting Posts
iOS MKMapView с поиском местоположения в нижней части как отправлять данные из уведомления в приложение Как происходит переход между дочерними элементами UIPageViewControllers в Swift App? swift spritekit – не может вызывать «runAction» с аргументом типа «SKAction!» Инструмент для тестирования размеров активов iOS? Программно изменить требуемые фоновые режимы Нет в разделе покупки приложений в подробностях iOS: как добавить прокручиваемый текстовый вид в настройки приложения? Запрос цепи с использованием NSURLSessionDataTask SWIFT: что следует использовать для вычисления вращения устройства – гравитации или вращения? Совместное использование LinkedIn Oauth 2 с Swift NSString iOS Русская кодировка UIWebView с Django iOS: изменение представления на backgroung не обновляет то, что видно до того, как приложение вернется на передний план Доступность EKEventDate на iOS

Как обнаружить наличие файла на веб-сервере

Что было бы правильным способом в iOS для обнаружения наличия файла (HTML) на веб-сервере. Использование следующего для обнаружения myfile.html всегда возвращает true.

NSURL *url = [NSURL URLWithString:@"http://somewebsite.com/myfile.html"]; NSURLRequest *requestObject = [NSURLRequest requestWithURL:url]; NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:requestObject delegate:self]; if (theConnection) { NSLog(@"File exists"); } else { NSLog(@"File does NOT exist"); } 

Я верю, что возвращается, что соединение с HTTP-сервером прошло успешно, и не проверяет, действительно ли файл myfile.html существует.

вам необходимо использовать соединение: метод делегирования didReceiveResponse, чтобы проверить код ответа HTTP. что-то вроде следующего будет проверяться, чтобы убедиться, что вы получили ответ 200, в зависимости от вашего сервера я ожидаю, что код состояния будет 404, если файл не существует.

 - (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { //make sure we have a 2xx reponse code NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; if ([httpResponse statusCode]/100 == 2){ NSLog(@"file exists"); } else { NSLog(@"file does not exist"); } }