美文网首页
AFNetworking3.0下使用setImageWithUR

AFNetworking3.0下使用setImageWithUR

作者: 斯乐林 | 来源:发表于2017-02-22 17:35 被阅读174次

    前言

    AFNetworking升级到3.0之后setImageWithURL的逻辑有变化,只要请求的图片在缓存中已存在,则直接使用缓存图片,导致原来根据session刷新验证码的流程不能实现。

    AFNetworking3.0之前

    在升级AFNetworking3.0之前,项目中有获取图片验证码的需求,使用setImageWithURL方法能很容易地实现需求(AFNetworking自动携带服务器返回的cookie信息,每次请求根据cookie获取不同的验证码)。

    NSURL *url = [NSURL URLWithString:@"xxx"];
    [myImgView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"xxx"] cache:NSURLRequestReloadIgnoringCacheData];
    

    AFNetworking3.0

    AFNetworking3.0的setImageWithURL方法去掉了cache参数,直接检查是否有缓存图片,如果有就不再进行新的请求,这样就使得图片验证码不能刷新。采取的解决办法是每次刷新验证码之前,先将内存中的缓存图片清除。

    NSURL *url = [NSURL URLWithString:@"xxx"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [[[AFImageDownloader defaultInstance] imageCache]removeImageforRequest:request withAdditionalIdentifier:nil];//删除图片缓存
    [request addValue:@"image/*" forHTTPHeaderField:@"Accept"];
    [myImgView setImageWithURLRequest:request placeholderImage:[UIImage imageNamed:@"xxx"] success:nil failure:nil];
    

    相关文章

      网友评论

          本文标题:AFNetworking3.0下使用setImageWithUR

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