关于AFNetWorking提交json崩溃问题

错误信息如下

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '***+[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'. *** First throw call stack

先说解决办法

session.requestSerializer = [AFJSONRequestSerializer serializer];

只要这一段,并不需要设置content-type。我感觉是af自动会帮我们设置

session为

AFHTTPSessionManager *session = [AFAppDotNetAPIClient sharedManager];

要注意一下,传的参数需要是NSDictionary,因为如果传nsstring或者nsdata,afn在解析的时候就会出现没有key值的问题,也就是一开始的错误

===============分割线================

解决过程我一开始用postman测试是发现Content-Type→application/json;charset=UTF-8

然后就一直设置如下这段

[session.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

加上之后就是一直报开头的错误

一开始我以为是传了jsonstring的关系,后来我换成了jsondata,还是不行,原因的话前面说了就是没有key的话afn不能识别json类型。

最后就是改成NSDictionary,完美通过。

这个我往上没有找到解决办法,记一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。