我试图发送一个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