网上查了很多资料,基本解决方法都是加上
[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;
具体视你的请求参数格式而定,以上就是我的踩坑经历
与大家分享,不足之处欢迎指正