0

Web サーバー (場合によっては http、場合によっては https) がリッスンしているかどうかを確認する必要があります。私はそれを同期的に行い、2〜3秒などの小さなタイムアウトを設定したいと考えています。

それを行う適切な方法は何ですか?iOS 5 との下位互換性が必要です。

更新: 外部ライブラリなしで行う必要があります。

4

1 に答える 1

3

OP は外部ライブラリを使用できないため、以下を実装しNSURLConnectionDelegateて使用します。

- (void)testUrl:(NSString *)url
{
    // Create the request.
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]
                                              cachePolicy:NSURLRequestReloadIgnoringCacheData
                                          timeoutInterval:3.0];

    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
    int responseStatusCode = [httpResponse statusCode];

    NSLog(@"GOT STATUS CODE: %d", responseStatusCode);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Done!");
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    NSLog(@"Connection failed! Error - %@ %@",
          [error localizedDescription],
          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
于 2013-04-30T17:53:36.160 に答える