1

在 iOS 中检测 Web 服务器上是否存在文件 (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 是否实际存在。

4

1 回答 1

5

您需要使用 connection: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");
    }
}
于 2012-09-07T21:27:41.030 回答