• AFNetworking


    一、添加SystemConfiguration和MobileCoreServices 框架

    二、下载AFNetworking资源包 https://github.com/AFNetworking/AFNetworking

    三、在工程的Supporting File群组中打开预编译头文件XXX-Prefix.pch,然后在别的import后面添加如下一行代码#import "AFNetworking.h"

    四、AFNetworking通过网络来加载和处理结构化的数据非常明智,它支持JSON,XML,Property List

    1. static NSString*const BaseURLString = @"http://www.raywenderlich.com/downloads/weather_sample/";  
    2.      
    3.     // 1  
    4.     NSString *weatherUrl = [NSStringstringWithFormat:@"%@weather.php?format=json",BaseURLString];  
    5.     NSURL *url = [NSURLURLWithString:weatherUrl];  
    6.     NSURLRequest *request = [NSURLRequestrequestWithURL:url];  
    7.      
    8.     // 2  
    9.     AFJSONRequestOperation *operation =  
    10.     [AFJSONRequestOperationJSONRequestOperationWithRequest:request  
    11.                                               success:^(NSURLRequest*request, NSHTTPURLResponse *response, id JSON) {  
    12.                                                  //  
    13.                                                  NSDictionary*dicWeather = (NSDictionary *)JSON;  
    14.                                                  NSLog(@"result:%@",dicWeather);  
    15.                                               }  
    16.                                               failure:^(NSURLRequest*request, NSHTTPURLResponse *response, NSError *error, id JSON) {  
    17.                                                  UIAlertView*alertView = [[UIAlertView alloc] initWithTitle:@"Error RetrievingWeather"  
    18.                                                                                                message:[NSStringstringWithFormat:@"%@",error]  
    19.                                                                                               delegate:self  
    20.                                                                                       cancelButtonTitle:@"OK"  
    21.                                                                                       otherButtonTitles: nil];  
    22.                                                  [alertView show];  
    23.                                               }];  
    24.     // 5  
    25.     [operation start];  

    五、AFNetWorking异步加载图片(不堵塞主线程)

    1. #import “UIImageView+AFNetworking.h”  
    2. UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(40, 80, 40, 40)];  
    3.     __weak UIImageView *_imageView = imageView;  
    4.     [imageViewsetImageWithURLRequest:[[NSURLRequest alloc] initWithURL:[NSURLURLWithString:@"http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png"]]  
    5.                    placeholderImage:[UIImage imageNamed:@"placeholder.png"]  
    6.                            success:^(NSURLRequest *request,NSHTTPURLResponse *response, UIImage *image) {  
    7.                               _imageView.image = image;  
    8.                                
    9.                               [_imageView setNeedsDisplay];  
    10.                            }  
    11.                            failure:^(NSURLRequest *request, NSHTTPURLResponse*response, NSError *error) {  
    12.                               ;  
    13.                            }];  
    14.     [self.view addSubview:imageView];  

    六、GET 和POST请求

    1. AFHTTPClient *client= [[AFHTTPClient alloc] initWithBaseURL:baseURL];  
    2. [clientregisterHTTPOperationClass:[AFJSONRequestOperation class]];  
    3. [clientsetDefaultHeader:@"Accept" value:@"application/json"];  
    4. [client postPath:@"weather.php"  
    5.               parameters:parameters  
    6.                 success:^(AFHTTPRequestOperation *operation, id responseObject) {  
    7.                      self.weather =responseObject;  
    8.                      self.title = @"HTTPPOST";  
    9.                      [self.tableViewreloadData];  
    10.                  }  
    11.                 failure:^(AFHTTPRequestOperation *operation, NSError*error) {  
    12.                      UIAlertView *av =[[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather"  
    13.                                                                  message:[NSStringstringWithFormat:@"%@",error]  
    14.                                                                 delegate:nil  
    15.                                                        cancelButtonTitle:@"OK" otherButtonTitles:nil];  
    16.                      [av show];  
    17.    
    18.                  }  
    19.          ];  
    20.    
    21. [client getPath:@"weather.php"  
    22.              parameters:parameters  
    23.                success:^(AFHTTPRequestOperation *operation, id responseObject) {  
    24.                     self.weather =responseObject;  
    25.                     self.title = @"HTTP GET";  
    26.                     [self.tableViewreloadData];  
    27.                 }  
    28.                failure:^(AFHTTPRequestOperation *operation, NSError*error) {  
    29.                     UIAlertView *av =[[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather"  
    30.                                                                  message:[NSStringstringWithFormat:@"%@",error]  
    31.                                                                delegate:nil  
    32.                                                       cancelButtonTitle:@"OK" otherButtonTitles:nil];  
    33.                     [av show];  
    34.    
    35.                 }  
    36.          ];  

    注:

    1、AFJSONOperation,AFPropertyListOperation, AFXMLOperation用来解析结构化数据。

    2、UIImageView+AFNetworking用来快捷的填充image view

    3、AFHTTPClient用来进行更底层的请求

    4、用自定义的AFHTTPClient子类来访问一个web service。

    5、AFNetworkActivityIndicatiorManager用来给用户做出网络访问的提示。

    6、AFImageRequestOperation用来加载图片

  • 相关阅读:
    Python接口自动化之request请求封装
    AI缘起——达特茅斯会议
    AirtestProject测试框架
    强化学习落地:竞态场景下基于锁机制的闲置端口查用
    多智能体强化学习入门Qmix
    代码回滚----git reset 和 git revert 使用
    requestAnimationFrame
    深度剖析-事件循环event
    Ubuntu18.04安装ES也就是ELK
    Ubuntu18.04+kafka
  • 原文地址:https://www.cnblogs.com/swallow37/p/3873211.html
Copyright © 2020-2023  润新知