使用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;

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

你可能感兴趣的:(使用AFN时,后台一直(偶尔)收不到POST参数,安卓却正常)