博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AFNetworking
阅读量:4549 次
发布时间:2019-06-08

本文共 5358 字,大约阅读时间需要 17 分钟。

1.下载AFNetworking资源包  下载2.将资源包添加到工程文件。3.在工程的Supporting File群组中打开预编译头文件XXX-Prefix.pch。然后在别的import后面添加如下一行代码#import “AFNetworking”将AFNetworking添加到预编译头文件,意味着这个框架会被自动的添加到工程的所有源代码文件中。4.AFNetworking通过网络来加载和处理结构化的数据非常明智,它支持JSON,XML,Property List。static NSString*const BaseURLString = @"http://www.raywenderlich.com/downloads/weather_sample/";       // 1    NSString *weatherUrl = [NSStringstringWithFormat:@"%@weather.php?format=json",BaseURLString];    NSURL *url = [NSURLURLWithString:weatherUrl];    NSURLRequest *request = [NSURLRequestrequestWithURL:url];       // 2    AFJSONRequestOperation *operation = [AFJSONRequestOperationJSONRequestOperationWithRequest:request                                success:^(NSURLRequest*request, NSHTTPURLResponse *response, id JSON) {                                                 //                                                 NSDictionary*dicWeather = (NSDictionary *)JSON;                                                 NSLog(@"result:%@",dicWeather);                                              }                                failure:^(NSURLRequest*request, NSHTTPURLResponse *response, NSError *error, id JSON) {                           UIAlertView*alertView = [[UIAlertView alloc] initWithTitle:@"Error RetrievingWeather"                                                                   message:[NSStringstringWithFormat:@"%@",error]                                                                                              delegate:self                                                                    cancelButtonTitle:@"OK"                                                                     otherButtonTitles: nil];                                              [alertView show];                                              }];    // 5    [operation start]; (1)根据基本的URL构造除完整的一个URL,然后通过这个完整的URL获得一个NSURL对象,然后根据这个url获得一个NSURLRequest。(2)AFJSONRequestOperation是一个完整的类,整合了从网络中获取数据并对JSON进行解析。(3)当请求成功,则运行成功块。在本例中,把解析出来的天气数据从JSON变量转换为一个字典(dictionary),并将其存储在字典中。(4)如果运行出问题了,则运行失败块(failure block),比如网络不可用。如果failure block被调用了,将会通过提示框显示错误信息。 6.AFNetWorking异步加载图片(1)#import “UIImageView+AFNetworking.h”(2)UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(40, 80, 40, 40)];    __weak UIImageView *_imageView = imageView;    [imageViewsetImageWithURLRequest:[[NSURLRequest alloc] initWithURL:[NSURLURLWithString:@"http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png"]]                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]                           success:^(NSURLRequest *request,NSHTTPURLResponse *response, UIImage *image) {                              _imageView.image = image;                              [_imageView setNeedsDisplay];                           }                           failure:^(NSURLRequest *request, NSHTTPURLResponse*response, NSError *error) {                              ;                           }];    [self.view addSubview:imageView]; 7.GET 和POST请求(1).构建一个baseURL,以及一个参数字典,并将这两个变量传给AFHTTPClient.(2).将AFJSONRequestOperation注册为HTTP的操作, 这样就可以跟之前的示例一样,可以获得解析好的JSON数据。(3).做了一个GET请求,这个请求有一对block:success和failure。(4).POST请求跟GET一样 AFHTTPClient *client= [[AFHTTPClient alloc] initWithBaseURL:baseURL];[clientregisterHTTPOperationClass:[AFJSONRequestOperation class]];[clientsetDefaultHeader:@"Accept" value:@"application/json"];[client postPath:@"weather.php"              parameters:parameters                success:^(AFHTTPRequestOperation *operation, id responseObject) {                     self.weather =responseObject;                     self.title = @"HTTPPOST";                     [self.tableViewreloadData];                 }                failure:^(AFHTTPRequestOperation *operation, NSError*error) {                     UIAlertView *av =[[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather"                                                                 message:[NSStringstringWithFormat:@"%@",error]                                                                delegate:nil                                                       cancelButtonTitle:@"OK" otherButtonTitles:nil];                     [av show];                  }         ]; [client getPath:@"weather.php"             parameters:parameters               success:^(AFHTTPRequestOperation *operation, id responseObject) {                    self.weather =responseObject;                    self.title = @"HTTP GET";                    [self.tableViewreloadData];                }               failure:^(AFHTTPRequestOperation *operation, NSError*error) {                    UIAlertView *av =[[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather"                                                                 message:[NSStringstringWithFormat:@"%@",error]                                                               delegate:nil                                                      cancelButtonTitle:@"OK" otherButtonTitles:nil];                    [av show];                 }         ];  8.AFNetworking更新背景图片Note:AFJSONOperation,AFPropertyListOperation, AFXMLOperation用来解析结构化数据。UIImageView+AFNetworking用来快捷的填充image viewAFHTTPClient用来进行更底层的请求用自定义的AFHTTPClient子类来访问一个web service。AFNetworkActivityIndicatiorManager用来给用户做出网络访问的提示。AFImageRequestOperation用来加载图片。

 

转载于:https://www.cnblogs.com/huluo666/p/3523608.html

你可能感兴趣的文章
[转]微擎应用笔记3--manifest.xml文件使用说明
查看>>
Codeforces 1000C Covered Points Count 【前缀和优化】
查看>>
python高效读取文件、文件改写
查看>>
gulp
查看>>
pgsql查询优化之模糊查询
查看>>
[转]-Gradle使用手册(三):构建任务
查看>>
ExtJS下拉树
查看>>
android 调用系统相机录像并保存
查看>>
BW系统表的命名规则
查看>>
Asp.Net在IE10下出现_doPostBack未定义的解决办法 LinkButton
查看>>
《CLR via C#》Part2之Chapter5 基元类型、引用类型和值类型(一)
查看>>
1-9 RHEL7-文件权限管理
查看>>
apache服务器安装
查看>>
Search a 2D Matrix
查看>>
文件解析漏洞
查看>>
弹性成像的一些术语
查看>>
ListBox 消息 (zz)
查看>>
计算机网络之万维网WWW
查看>>
作业2
查看>>
vim 笔记
查看>>