最近閑來無事, 做了一個簡單的網絡請求封裝, 基于 AFNetworking 的.

錯誤的response.png
注意左邊的
responseObject 的類型是 _NSInlineData 這個是無法解析的, 正常來講我們需要的是 __NSDictionaryI 字典的類型方便我們解析使用才對.
先來說說問題的原因吧:
這個錯誤很大原因是因為在創(chuàng)建 manager 的時候,設置了
AFHTTPSessionManager *afnManager = [AFHTTPSessionManager manager];
afnManager.responseSerializer = [AFHTTPResponseSerializer serializer]; //問題所在
因為 AFNetworking 默認會將 json 數據解析,那樣的話返回回調里面的 responseObject 就是一個解析過的數據,比如字典,但是如果使用了上面這個函數,那么返回的 responseObject 就是一個 NSData ,這樣就會出現這個錯誤了。
正確的應該是:
AFHTTPSessionManager *afnManager = [AFHTTPSessionManager manager];
afnManager.requestSerializer = [AFHTTPRequestSerializer serializer];

正確的response.png