• AFNetworking简单用法


    GET请求

     1 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
     2 
     3 [manager GET:URL parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {  
     4 
     5 }     
     6  success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {  
     7 
     8  NSLog(@"这里打印请求成功要做的事");  
     9 
    10 }
    11 
    12 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull   error) {  
    13 
    14 NSLog(@"%@",error);  //这里打印错误信息
    15 
    16 }];

    POST 请求

     1 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
     2 
     3 
     4 NSMutableDictionary *parameters = @{@"":@"",@"":@""};
     5 
     6 [manager POST:URL parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {
     7 
     8 
     9 } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    10 
    11 
    12 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    13 
    14 }];

    下载

     1 //1.创建管理者对象
     2 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
     3 AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];
     4 
     5 //2.确定请求的URL地址
     6 NSURL *url = [NSURL URLWithString:@""];
     7 
     8 //3.创建请求对象
     9 NSURLRequest *request = [NSURLRequest requestWithURL:url];
    10 
    11 //下载任务
    12 NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
    13     //打印下下载进度
    14     NSLog(@"%lf",1.0 * downloadProgress.completedUnitCount / downloadProgress.totalUnitCount);
    15     
    16 } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
    17     //下载地址
    18     NSLog(@"默认下载地址:%@",targetPath);
    19     
    20     //设置下载路径,通过沙盒获取缓存地址,最后返回NSURL对象
    21     NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:response.suggestedFilename];
    22     NSLog(@"%@", path);
    23     return [NSURL fileURLWithPath:path];
    24     
    25     
    26 } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
    27     
    28     //下载完成调用的方法
    29     NSLog(@"下载完成:");
    30     NSLog(@"%@--%@",response,filePath);
    31     
    32 }];
    33 
    34 //开始启动任务
    35 [task resume];

    上传

     1 NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
     2 AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
     3 
     4 NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
     5 NSURLRequest *request = [NSURLRequest requestWithURL:URL];
     6 
     7 NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
     8 NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
     9     if (error) {
    10         NSLog(@"Error: %@", error);
    11     } else {
    12         NSLog(@"Success: %@ %@", response, responseObject);
    13     }
    14 }];
    15 [uploadTask resume];

    监测当前网络状态(网络监听)

    1 {
    2     // 进行网络监测判断的BOOL值
    3     BOOL isOpen;
    4 }
     1 if (!isOpen) {
     2     
     3     // 打开网络监测的方法
     4     [[AFNetworkReachabilityManager sharedManager] startMonitoring];
     5     isOpen = YES;
     6     
     7 } else {
     8     
     9     // 关闭网络监测
    10     [[AFNetworkReachabilityManager sharedManager] stopMonitoring];
    11     isOpen = NO;
    12 }
    13 
    14 // 接下来会判断是WiFi状态,还是3g或4g状态,还有网络不可用状态
    15 [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
    16     
    17     switch (status) {
    18         case AFNetworkReachabilityStatusUnknown:
    19             NSLog(@"未知状态");
    20             break;
    21             
    22         case AFNetworkReachabilityStatusNotReachable:
    23             NSLog(@"未连接状态");
    24             break;
    25             
    26         case AFNetworkReachabilityStatusReachableViaWWAN:
    27             NSLog(@"手机流量网络");
    28             break;
    29             
    30         case AFNetworkReachabilityStatusReachableViaWiFi:
    31             NSLog(@"WiFi状态");
    32             break;
    33             
    34         default:
    35             break;
    36     }
    37 }];
     
  • 相关阅读:
    js 将内容复制到剪切板上
    javascript刷新父页面的各种方法汇总
    jQuery 使得文本框获得焦点
    layui switch 开关监听 弹出确定状态转换
    layui 图片上传+表单提交+ Spring MVC
    python爬虫实例--网易云音乐排行榜爬虫
    Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
    python爬虫实例--博客园首页Java目录博文爬虫
    让js中的函数只有一次有效调用的三种常用方法
    spring项目获取ServletContext
  • 原文地址:https://www.cnblogs.com/zhizunbao/p/5536132.html
Copyright © 2020-2023  润新知