Gle*_*ith 4 url image exists objective-c download
嘿,我有一个程序需要判断一个在线图像是否存在,但我唯一能让它工作的方法是在NSData指针中加载图像并检查指针是否存在.
- (BOOL)exists {
NSString *filePath = @"http://couleeapps.hostei.com/BottomBox.png";
NSURL *url = [NSURL URLWithString:filePath];
NSData *imageData = [NSData dataWithContentsOfURL:url];
if (imageData) {
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
这对我有用,但我的问题是我的连接速度非常慢,下载图像需要花费很长时间.所以我的问题是:有没有办法检查图像(说" http://couleeapps.hostei.com/BottomBox.png ")是否可用,而无需在布尔报告方法中下载?
非常感谢帮助
HiGuy
dra*_*ard 16
创建一个NSURLConnection以获取网址.设置HTTPMethod的NSURLRequest,以"HEAD"代替"GET".在委托方法connection:didReceiveResponse:检查statusCode的NSHTTPURLResponse200或其他成功响应.
-(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
}
}
Run Code Online (Sandbox Code Playgroud)
您可能会将其他状态代码视为成功,例如301.
HTTP协议的一部分是设置请求方法.GET和POST是最常见的两种,但还有其他一些包括HEAD.HEAD说发送你要为GET发送的相同回复,但不发送正文.在您的情况下,正文是图像数据.因此,如果HEAD成功,您可以假设GET也会以相同的方式成功,至少在查找静态资源的情况下.
| 归档时间: |
|
| 查看次数: |
4052 次 |
| 最近记录: |