zoukankan      html  css  js  c++  java
  • 网络请求方法(SDK封装可以替换afn)

    //个人觉得 sdk开发时候 最好不要用第三方 最好可以用最原始的方法 替换 此处仅做sdk封装使用  留存
    +(void)GET:(NSString *)urlStr params:(NSDictionary *)params sucess:(void (^)(NSURLSessionDataTask *task, id responseObject))sucess failure:(void (^)(NSURLSessionDataTask *task, NSError * error))failure { urlStr = [self URLEncodedStringValue:params url:urlStr]; NSURL *URL = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; [request setHTTPMethod:@"GET"]; NSURLSession *session = [NSURLSession sharedSession]; __block NSURLSessionDataTask *task= nil; task = [session dataTaskWithRequest:request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) { if (error) { failure(task,error); } else { NSError *jsonError = nil; id notesJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&jsonError]; if (!jsonError) { if (sucess) { sucess(task,notesJSON); } } else { if (failure) { failure(task,jsonError); } } } }]; [task resume]; } + (NSString *)URLEncodedStringValue:(NSDictionary *)Parameter url:(NSString *)urlStr { if (Parameter) { urlStr = [urlStr stringByAppendingString:@"?"]; NSArray *keys =[Parameter allKeys]; for (int i=0;i<keys.count;i++) { NSString *key = [keys objectAtIndex:i]; NSString *value = [Parameter objectForKey:key]; if (i==0) { urlStr = [urlStr stringByAppendingFormat:@"%@=%@",key,value]; } else { urlStr = [urlStr stringByAppendingFormat:@"&%@=%@",key,value]; } } } urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLQueryAllowedCharacterSet]; return urlStr; }
  • 相关阅读:
    OkHttp3Stack volley
    Badge分析
    Android Icon数字角标(BadgeNumber)的实现方式
    Android ORMLite 框架的入门用法
    实现FlowLayout 自动排序标签
    iptables端口转发配置[Ubuntu]
    编译csipsimple的native部分
    开发JavaScript组件
    jQuery组件开发
    Groovy小结:java调用Groovy方法并传递参数
  • 原文地址:https://www.cnblogs.com/dujiahong/p/6674074.html
Copyright © 2011-2022 走看看