AFNetworking 302 重定向

前两天 app突然重复出现获取数据失败的提示(alert),造成了非常差的用户体验,通过网络抓包发现有一个请求状态为302,一番搜索,发现这是重定向(如果不知道就自行查一下),所有的AF请求都会在post get等请求前执行下面这个方法,所以只需重写这个方法就能拦截请求

manager = [AFHTTPSessionManager manager];
[manager setTaskWillPerformHTTPRedirectionBlock:^NSURLRequest * _Nonnull(NSURLSession * _Nonnull session, NSURLSessionTask * _Nonnull task, NSURLResponse * _Nonnull response, NSURLRequest * _Nonnull request) {
            NSHTTPURLResponse *resPonse = (NSHTTPURLResponse *)response;
           //1、如果要忽略重定向
          /*
            if (resPonse.statusCode == 302){
                return nil;
            }else {//正常请求
                return request;
            }
             */
         // 2、通过重定向url去获取数据
            if (resPonse.statusCode == 302){//如果响应code==302 就是重定向
                NSMutableURLRequest *res = [NSMutableURLRequest requestWithURL:request.URL];
              //通过抓包发现请求头不见了 所以在这里添加请求头,如果没有这个需求的可以忽略
                NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:request.allHTTPHeaderFields];
                NSString *valueStr = [NSString stringWithFormat:@" %@",localToken];
                [headers setObject:valueStr forKey:@"Authorization"];
                res.allHTTPHeaderFields = headers;

                return res;
            }else {//正常请求
                return request;
            }
}];

个人笔记,勿喷 😄

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 鱼夏生阅读 309评论 0 0
  • 我感知到了眼前意识投射给这具身体正在感知的这个画面,这个聚焦哪里哪里就会更清晰的立体画面。我在想,我意识到的这个电...
    一梵意一阅读 351评论 0 1
  • 哥哥说,最难得不过是不经意修炼,进食也是修炼,睡去也是修炼,走路也是修炼,写字亦是修炼。 大约这句话太过迷离,...
    打酱油的靖哥哥阅读 432评论 0 0
  • 双手探入深处 转身已找不到回时的路 幽幽静静 篝火燃烧成了灰烬 隐暗中的脸 好像多年以前的自己
    掰玉米的老头阅读 238评论 0 0
  • 陆金所 平安集团背景,从资历来看根正苗红,实力强劲; 各个权威机构排行榜常年保持冠军位置; 体量巨大; 近两年IP...
    九天360阅读 759评论 0 51