通過NSURLRequest獲得服務器返回的http header和http status

同步訪問時的取法

NSURL *url = [NSURL URLWithString:@"http://www.test.com"];
NSURLRequest *request = [NSURLRequest requestWithURL: url];
NSHTTPURLResponse *response;
[NSURLConnection sendSynchronousRequest: request returningResponse: &response error: nil];
if ([response respondsToSelector:@selector(allHeaderFields)]) {
    // 取得所有的請求的頭
    NSDictionary *dictionary = [response allHeaderFields];
    NSLog([dictionary description]);
    // 取得http狀態碼
    
NSLog(@"%d",[response statusCode]);

}

 

異步訪問時則要實現委託的一個方法

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    // 注意這裏將NSURLResponse對象轉換成NSHTTPURLResponse對象才能去
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
    if ([response respondsToSelector:@selector(allHeaderFields)]) {
        NSDictionary *dictionary = [httpResponse allHeaderFields];
        NSLog([dictionary description]);
        NSLog(@"%d",[response statusCode]);

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章