Создайте NSURLConnection
для получения URL. Установите HTTPMethod
для NSURLRequest
на "HEAD"
вместо "GET"
. В методе делегата connection:didReceiveResponse:
проверьте statusCode
из NSHTTPURLResponse
для 200 или другого успешного ответа.
-(void) queryResponseForURL:(NSURL *)inURL {
NSMutableURLRequest request = [NSMutableURLRequest requestWithURL:inURL];
[request setHTTPMethod:@"HEAD"];
NSURLConnection connection = [NSURLConnection connectionWithRequest:request delegate:self];
// connection starts automatically
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
if ( [(NSHTTPURLResponse *)response statusCode] == 200 ) {
// url exists
}
}
Могут быть и другие коды состояния , которые вы считаете успешными, например, 301.
Часть протокола HTTP устанавливает метод запроса . GET и POST являются двумя наиболее распространенными, но есть несколько других, включая HEAD. HEAD говорит, что отправьте тот же ответ, который вы отправите для GET, но не отправляйте тело. В вашем случае тело это данные изображения. Таким образом, если HEAD завершается успешно, вы можете предположить, что GET также будет успешным таким же образом, по крайней мере, в случае поиска статического ресурса.