使用AFN时,后台一直(偶尔)收不到POST参数,安卓却正常

网上查了很多资料,基本解决方法都是加上

[manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

这里解释一下这个原理,以为PHP为例,如果接受参数的方式是$_POST["paramName"],那么上述的Content-Type则没有问题,但是如果接受参数的方式是file_get_contents("php://input") ,那么上面一句的写法就得改为

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

你以为这样就完了吗?然鹅,后台还是接收不到,这时候可以尝试换一下AFHTTPSessionManager的请求序列器requestSerializer

manager.requestSerializer = AFHTTPRequestSerializer.new;

或者

manager.requestSerializer = AFJSONRequestSerializer.new;

具体视你的请求参数格式而定,以上就是我的踩坑经历与大家分享,不足之处欢迎指正

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

推荐阅读更多精彩内容