• AFN和SDWebImage请求网络图片的一点问题


    问题1.AFN 处理有关图片相关的请求的问题

    • 在使用AFN Post网络图片的时候发现NSLocalizedDescription=Request failed: unacceptable content-type: image/jpeg}
    • 可是自己明明有添加
      • mgr.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",  @"text/json", @"text/html", @"image/jpeg", @"image/png", nil];
    • 后来不知道怎么回事,就是打断点后来发现这句代码是生效了,可是被后边的
    • mgr.responseSerializer = [AFJSONResponseSerializer serializer];给覆盖掉了,也就是说acceptContentTypes中的image/jpeg又失效了
    • 后来是在发送有图片相关请求之前重新赋值一次acceptableContentTypes来解决的问题。
    • 2018年9月15日更新内容华丽丽的分割线

     

    • 再次发现原来即使反应的不报出来unacceptable 的问题了 可是得到的responseObject为null那么说怎么回事呢?
    • 后来调整了一下下边的内容
        • mgr1.responseSerializer = [AFImageResponseSerializer serializer];

        • 这样得到的responseObject就是图片了

    问题2:在忽略本地缓存的情况下,用SDWebImage 需要从服务器请求网络图片遇到的问题

    • 不知道为什么写的是options:SDWebImageRefreshCached,可是从服务器上边拿到的图片还是不是想要的那个,不能实时更新
    • 后来各种查发现SDWebImage确实有这个问题,用自己的话说是和服务器端设置的HTTP的header头里的no cache有关系,这一点以后再仔细看
    • 网址是这里:https://stackoverflow.com/questions/34065213/sdwebimage-not-updating-image-in-cache
    • 那么要么我们换方法要么就和后台去聊可能除了这个header的no-cache还有别的解决方法也有说通过改正SD源码的lastmodified的那个我没试成功
    • 那么如果改成别的办法的话其实AFN也可以加载网络图片,但是需要注意的是可能用Get方式加载下的网络图片是responseObject直接就是我们要的图片
    • 其实也可以用AFImageDownloader来做相应的实现,不过在没遇到奇葩问题之前使用SD还是更方便的
    • 可能说的有点乱 记录下来为了以后遇到类似问题知道怎么解决
    • 如有不当之处 敬请指正 
    • 如需转载 请注明出处 谢谢
    我会不定期分享 iOS 相关技术文章
  • 相关阅读:
    MySQL数据库基本操作(二)
    MySQL数据库基本操作(一)
    13.常见模块re-正则模块
    12.常见模块time、json模块
    11.迭代器与生成器、模块与包
    10.文件的输入输出、异常
    9.多继承、类的特殊方法、装饰器
    8.类的概念、定义、属性、继承
    7.内置函数、作用域、闭包、递归
    6.函数基础
  • 原文地址:https://www.cnblogs.com/ITCoderW/p/7522405.html
Copyright © 2020-2023  润新知