美文网首页
ios请求后获取相关响应头参数

ios请求后获取相关响应头参数

作者: iOS攻城狮_Runloop | 来源:发表于2023-04-11 09:24 被阅读0次

/*GET请求/

···

  • (void)GET:(NSString *)url parameters:(NSDictionary *)params success:(CodeSuccessBlock)success failure:(FailureBlock)failure{

      NSMutableDictionary *totalParams = [NSMutableDictionary dictionary];
      [totalParams addEntriesFromDictionary:[self getCommonParameters]];
      [totalParams addEntriesFromDictionary:params];
      NSLog(@"URL:%@ params:%@",url,totalParams);
    

    //去除掉首尾的空白字符和换行字符
    NSString * removeUrlStr= [url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    //url字符串UTF-8编码
    NSString *endUrlStr = [removeUrlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    [self.manager GET:endUrlStr parameters:totalParams headers:self.headParams progress:^(NSProgress * _Nonnull downloadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
    dispatch_async(dispatch_get_main_queue(), ^{
    //统一处理Code状态
    NSInteger code = [self judgeCodeHandleWithJsonDic:responseObject];
    NSString * message = responseObject[@"message"];
    if (success) {
    success(code,responseObject,message);

               //设置响应头数据
                NSHTTPURLResponse * response = (NSHTTPURLResponse *)task.response;
                NSDictionary* headFilesDic = response.allHeaderFields;
                NSLog(@"GET+++响应头:%@ ",headFilesDic);
               
               //响应头中获取token参数,含有refresh-token的话,和本地token对比更新token
               [self refreshTokenWithHeadfilesDic:headFilesDic];
           }
      });
    

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    [MBProgressHUD wj_showPlainText:error.description view:nil];
    if (failure) {
    failure(error);
    }
    }];
    }

#pragma mark - 响应头中获取token对比更新
-(void)refreshTokenWithHeadfilesDic:(NSDictionary *)headFilesDic{
NSString * refreshToken = headFilesDic[@"refresh-token"];
if (refreshToken.length > 0) {
//对比更新
NSString * localToken = GetToken;
if (![localToken isEqualToString:refreshToken]) {
//更新token
SaveToken(refreshToken);
}
}
}

···

相关文章

  • ios请求后获取相关响应头

    task.response属于NSURLResponse类型,需要强转成NSHTTPURLResponse类型: ...

  • flask day02

    请求与响应 Ⅰ请求获取参数:① GET请求:获取参数:request.args、request.args.get(...

  • 2019-03-26 Tornado大纲

    tornado 请求与响应 请求 接收get传递参数获取请求URL中的参数: self.get_argument...

  • nginx+lua学习笔记一 Nginx Lua API

    和一般的Web Server类似,我们需要接收请求、处理并输出响应。而对于请求我们需要获取如请求参数、请求头、Bo...

  • Requests库帮助文档快速直通车

    快速上手 发送请求 传递 URL 参数 响应内容 二进制响应内容 JSON 响应内容 原始响应内容 定制请求头 更...

  • JMeter

    线程组 请求,可支持变量( 不知是否以线程组为单位 ),围绕Http协议构建参数,请求头,响应体等请求前脚本请求后...

  • 35 高级:自己实现AJAX

    用JS设置请求头 用JS获取响应头 为了避免写的API参数太多而混乱的情况,一般把要传入的多个参数变成对象,把该对...

  • Python爬虫之requests模块

    获取响应信息 发送Get请求 不带参数的Get请求 带参数的Get请求 直接写在url后面 在url后面用?表示带...

  • http缓存的知识点

    缓存相关 header Expires 响应头,代表该资源的过期时间。 Cache-Control 请求/响应头,...

  • day10 以文章的为例的接口文档

    文章查询接口api 请求URL: 请求方式: 请求参数: 响应: 响应参数:

网友评论

      本文标题:ios请求后获取相关响应头参数

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