最近闲来无事, 做了一个简单的网络请求封装, 基于 AFNetworking 的.

错误的response.png
注意左边的
responseObject 的类型是 _NSInlineData 这个是无法解析的, 正常来讲我们需要的是 __NSDictionaryI 字典的类型方便我们解析使用才对.
先来说说问题的原因吧:
这个错误很大原因是因为在创建 manager 的时候,设置了
AFHTTPSessionManager *afnManager = [AFHTTPSessionManager manager];
afnManager.responseSerializer = [AFHTTPResponseSerializer serializer]; //问题所在
因为 AFNetworking 默认会将 json 数据解析,那样的话返回回调里面的 responseObject 就是一个解析过的数据,比如字典,但是如果使用了上面这个函数,那么返回的 responseObject 就是一个 NSData ,这样就会出现这个错误了。
正确的应该是:
AFHTTPSessionManager *afnManager = [AFHTTPSessionManager manager];
afnManager.requestSerializer = [AFHTTPRequestSerializer serializer];

正确的response.png