AFNetWorking是一个iOS上的开源库,使用它可以简化网络数据请求方面的操作。本文只是简单的介绍一下AFNetWorking的常见使用,想要使用更多功能的朋友可以仔细看一
下AFNetWorking的开发文档。
常见的操作有哪些呢?比如在OSChina中,我们需要获取某个列表的数据,我们还需要提交自己的评论。现在就以这两个操作来简单的说明AFNetWorking的用法吧!
在开始写代码之前,先简单的介绍一下几个相关的类:
NSOperation:一个封装了数据和代码的抽象类,使用它可以某个单独的任务(Task)进行交互,因为它是抽象的,所以不能直接使用它来实例化对象。在AFNetWorking中,有一个继承自NSOperation的类AFURLConnectionOperation,在AFURLConnectionOperation中封装了一些和http请求相关的状态量,并向外开放了操作当前http请求的接口。
AFHTTPRequestOperation:是一个AFURLConnectionOperation的一个子类,它针对请求部分(request)又进行了一层简单的封装。
AFHTTPClient:封转了网络状态监听、请求编码、请求地址、请求参数以及对请求队列的管理。
下面是AFHTTPClient中请求数据的方法:
- (void)getPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:parameters];
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure];
[self enqueueHTTPRequestOperation:operation];
}
可以看到上面有一个success的block和一个failure的block,我们可以在对应的block中对请求的结果加以处理。
以下是AFHTTPClient中提交数据的方法:
- (void)postPath:(NSString *)path
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
NSURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:parameters];
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:success failure:failure];
[self enqueueHTTPRequestOperation:operation];
}
同样的又success和failure的block,我们可以在里面根据返回结果做相应的处理。除此之外在添加一些请求数据即可。
O啦~~~
转载请保留出处:http://blog.csdn.net/u011638883/article/details/17000411
谢谢!!