美文网首页开发iOS 开发IOS-AFNetworking
iOS7使用AFNetworking3.0上传图片时出现的问题

iOS7使用AFNetworking3.0上传图片时出现的问题

作者: 挣扎在编码世界 | 来源:发表于2016-02-24 16:41 被阅读6419次

背景:在上一个项目版本中一直使用AFNetworking2.0这个主流的网络请求库,AFHTTPRequestOperationManager从来未让人操心过。在新版迭代中,突发奇想的去升级AFNetworking3.0,使用了AFHTTPSessionManger之后让我操碎了心,如何操碎了新,让我慢慢道来。

在使用AFNetworking v3.0之前,当然是要去了解一下AFNetworking v3.0的具体变化(当然,v2.0版本我也不是很熟,就知道AFHTTPRequestOperationManager而已)。简要的总结说是AFHTTPRequestOperationManager这个类已经被弃用了,将使用AFHTTPSessionManger来取而代之,具体原因可以查看一下AFNetworking 3.0迁移指南。就听大神的说,都换成了AFHTTPSessionManger,API也更新了一遍。用虚拟机跑了一遍主要的用到的API,主要是以下三个:

*[AFHTTPSessionManger GET: parameters: progress: success: failure:] 

*[AFHTTPSessionManger POST: parameters: progress: success: failure:]

*[AFHTTPSessionManger POST: parameters: constructingBodyWithBlock: progress: success: failure:] 

在iOS8.0以上版本是正常运行,即使在上传图片的时候出现response Code=-1016 "Request failed: unacceptable content-type: text/html"的问题也是用

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]

或者是

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer]

轻松解决。

只是在iOS7.1的版本,使用前两个没有什么问题,倒是上传功能,出了response Code=-1011 "Request failed: length required (411)这个问题让我纠结了一遍。后来查了一下AFNetworking的issue集,还真遇到一个,试了几次终于可以使用了,下面贴下代码:

PS:本文章有个地方是会引发内存泄漏的,请查看这篇文章:AFNetworking3.x容易出现内存泄露的地方

贴上问题解答位置:https://github.com/AFNetworking/AFNetworking/issues/1398

相关文章

网友评论

  • NateLam:求教多图上传应该怎么写呢
  • 437aff410919:不知道作者有没试过在iOS7上 用upload方法来获取进度条进度,今天用AF3.0在iOS7的机子上跑的时候发现收不到进度条的回调,但是却能收到成功回调,而iOS7以上则没问题。
  • NO_thing:错了 我用了作者的方法后变味-1011 了 作者知道为什么吗
    Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)"
    短发_夏天:@NO_thing 你好 我想问一下 后台是什么问题呢? 我现在也是报这个错误
    NO_thing:@挣扎在编码世界 谢谢。。。加上你这个后可以。。。后来是后台的问题 :kissing_heart:
    挣扎在编码世界:@NO_thing 估计是url的问题,你看看是不是url带参有敏感字符
  • NO_thing:为什么我两种都试了还是没反应呢 还报错-1016
    在iOS8.0以上版本是正常运行,即使在上传图片的时候出现response Code=-1016 "Request failed: unacceptable content-type: text/html"的问题也是用

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"]

    王家薪:楼上问题解决了吗? 我也是上传图片时报错-1016 text/html 设置了type也无效
  • Sanchain:学习了,谢谢分享。楼主辛苦
  • No_00:学习了,谢谢分享

本文标题:iOS7使用AFNetworking3.0上传图片时出现的问题

本文链接:https://www.haomeiwen.com/subject/olhikttx.html