我試圖發送一個HTTP請求NSURLSession
。它工作正常,但是當服務器沒有響應時,我找不到HTTP錯誤代碼的存儲位置。 completionHandler
的第三個參數只是一個非常通用的NSError
。我讀了NSURLResponse
的參考資料,但什麼都沒發現。用NSURLSession處理HTTP錯誤?
NSURLSessionDataTask *dataTask =
[session dataTaskWithRequest:[self postRequestWithURLString:apiEntry parameters:parameters]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if(!error) NSLog([[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}
];
[dataTask resume];
加入&&響應==零到 如果([響應isKindOfClass:[NSHTTPURLResponse類]])可以是一個額外的好處 – prodeveloper
依吾不。 if([response isKindOfClass:[NSHTTPURLResponse class]] && response == nil)'永遠不會是真的('response'是'nil'或者它可能是HTTP響應,但不會同時出現)。也許你的意思是'response!= nil',但這在'isKindOfClass'調用中是隱含的(即如果'response'爲'nil',則調用'nil'對象上的'isKindOfClass'不是真)。如果你真的想'if(response!= nil && [response isKindOfClass:[NSHTTPURLResponse class]])',那沒有什麼問題,並且明確地表示意圖,但是是多餘的。 – Rob
是的你是對的。評論中有一個錯字。我的意思是提及「|| response」而不是「&& response」 – prodeveloper