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

http 応答コードを確認するには、connection:didReceiveResponse デリゲート メソッドを使用する必要があります。ファイルが存在しない場合、サーバーによっては、ステータス コードが 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 に答える