2009-05-27 55 views
28

Tôi cần kiểm tra và đánh giá Mã trạng thái HTTP trong ứng dụng iPhone của mình. Tôi đã có một đối tượng NSURLRequest và một NSURLConnection rằng thành công (tôi nghĩ) kết nối với trang web:Truy xuất mã trạng thái HTTPResponse/HTTPRequest iPhone SDK?

// create the request 
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"] 
         cachePolicy:NSURLRequestUseProtocolCachePolicy 
        timeoutInterval:60.0]; 
// create the connection with the request 
// and start loading the data 
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 
if (theConnection) { 
    // Create the NSMutableData that will hold 
    // the received data 
    // receivedData is declared as a method instance elsewhere 
    receivedData=[[NSMutableData data] retain]; 
} else { 
    // inform the user that the download could not be made 
} 

Tôi có mã này ở đây: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

Nhưng nó không (như xa như tôi có thể xem) nói bất cứ điều gì về việc truy cập các mã trạng thái HTTP.

Bất kỳ ai có bất kỳ ý tưởng nào về cách tạo kết nối đến một trang web và sau đó kiểm tra mã trạng thái HTTP của kết nối đó?

Cảm ơn trước!

Trả lời

76

Đây là cách tôi làm điều đó:

#pragma mark - 
    #pragma mark NSURLConnection Delegate Methods 
    - (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { 
     NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; 
     int responseStatusCode = [httpResponse statusCode]; 
    } 

Nhưng tôi đang sử dụng một NSURLConnection không đồng bộ, vì vậy điều này có thể không giúp bạn. Nhưng tôi hy vọng nó không!

+0

Điều này đã đạt được những gì tôi cần. Vấn đề duy nhất là nếu URL/IP Addy không tồn tại, không nhận được phản hồi nào, vì vậy ứng dụng sẽ treo ở đó mãi mãi. Tôi hiện đang xem xét một cách để giải quyết vấn đề này ... mọi đề xuất sẽ được đánh giá cao ... – cmcculloh

+3

Nhìn vào mã Reachabilty từ Apple. Mặc dù vậy, chỉ sử dụng phương thức thông báo (không được kích hoạt trong mã theo mặc định, xem các chú thích trong phương thức init) và luôn đặt máy chủ bạn định kiểm tra. http://stackoverflow.com/questions/477852/checking-for-internet-connectivity-in-objective-c –

Các vấn đề liên quan