Fork me on GitHub

AFNetworking用POST发送的parameters在Java后台接收失败的问题

之前传的参数有JSON格式,也有可能是form-data格式,不过PHP后台都可以接收。现在用的Java后台不能接收form-data这种格式,所以请求失败了。

这时候需要修改AFNetworking的requestSerializer

先检查是否改动过requestSerializer,如果之前设置成了AFJSONRequestSerializer,把AFJSONRequestSerializer改成了AFHTTPRequestSerializer就OK了

1
2
3
// 如果之前有设置AFJSONRequestSerializer,下面这段也需要,一定要看清楚,很容易混淆
AFHTTPRequestSerializer *request = [AFHTTPRequestSerializer serializer];
manager.requestSerializer = request;

然后设置HTTPHeaderField,告知后台使用form表单格式提交参数

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

再次请求,服务端就不会返回参数找不到的错误啦。

------------- 本文结束感谢您的阅读 -------------