我正在开发一个应用程序以及该应用程序将要与之交谈的API。在开发事物的应用方面,我还很陌生!
尽管API应该始终返回有效的JSON,但我想处理出现问题并返回HTML的情况(请考虑DNS修改)。
我正在使用AFNetworking
,而self.sessionmanager
是AFHTTPSessionManager
现在,我的代码(非常简化)说:
[self.sessionmanager GET:@"/app/api/v1/meetings/" parameters:params progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if ([responseObject containsObject:@"status"]) {
// Do stuff
}
else {
// Do failure stuff
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// Do failure stuff
return;
}];
问题是,如果我使用HTML页面而不是JSON到达成功函数,则得到的responseObject
是十六进制的,当我调用containsObject
时得到的是NSInvalidArgumentException
并将无法识别的选择器发送到实例。
我尝试在containsObject
调用周围放置一个@try @catch块,但似乎没有捕获到异常。
如何避免JSON响应中的responseObject
是有效对象,以避免在需要时调用containsObject
?