AFNetworking Domain=com.alamofire.error.serialization.response Code=-1011 “Request failed: not f...

小白记录学习iOS网络框架使用中遇到的问题
使用AFNetworking 4.x版本进行post请求出现了情况

Domain=com.alamofire.error.serialization.response Code=-1011 “Request failed: not found (404)”

后台说是请求参数有问题,不是json格式的,我仔细看了入参数据我是按照规范json格式传入的。
遇到了这个错误自查了以下几个问题:
1.确认post时带的参数params是不是有问题
2.确认一下请求是否写错了
3.确认requestSerializer序列化是否有问题
开始解决:
网上大部分说法是修改acceptableContentTypes 比如下面:

 sessionManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/html",@"text/plain",nil];

但是,这么修改并没有解决这个问题,最后解决问题是需要修改请求序列化

sessionManager.requestSerializer = [AFHTTPRequestSerializer serializer];

改成

sessionManager.requestSerializer = [AFJSONRequestSerializer serializer];

这么修改就可以成功设置json参数。
总结:
  对于AFHTTPSessionManager,当其在要发送请求时,会调用AFHTTPRequestSerializer 来组装请求。 而当请求获得了响应,需要作出解析时,又会调用对应的response serializer来解析返回的data。对于服务器响应的解析过程,在AFHTTPSessionManager中,是通过AFHTTPResponseSerializer来实现的。

AFHTTPRequestSerializer:二进制格式
AFJSONRequestSerializer:JSON 继承自AFHTTPRequestSerializer
AFPropertyListRequestSerializer:Plist 继承自AFHTTPRequestSerializer

查看请求头内容需使用

- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field
NSLog(@"%@",sessionManager.requestSerializer.HTTPRequestHeaders);

接着学习。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky_aizaixin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值