AFNetworking responseObject包含十六进制-如何检查呢?

时间:2018-11-15 17:49:58

标签: ios xcode afnetworking

我正在开发一个应用程序以及该应用程序将要与之交谈的API。在开发事物的应用方面,我还很陌生!

尽管API应该始终返回有效的JSON,但我想处理出现问题并返回HTML的情况(请考虑DNS修改)。

我正在使用AFNetworking,而self.sessionmanagerAFHTTPSessionManager

现在,我的代码(非常简化)说:

[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

0 个答案:

没有答案