AFNetworking使用

  • 簡介

AFNetworking,是對NSURLConnection、NSURLSession的一層封裝服務器

 

  • 經常使用類

AFHTTPRequestOperationManagerurl

是AFN中最重要的對象之一spa

封裝了HTTP請求的常見處理code

GET\POST請求對象

解析服務器的響應數據blog

 

  • GET\POST請求

GET請求io

- (AFHTTPRequestOperation *)GET:(NSString *)URLStringtable

                     parameters:(id)parametersclass

                        success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success請求

                        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure

 

POST請求

- (AFHTTPRequestOperation *)POST:(NSString *)URLString

                      parameters:(id)parameters

                         success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success

                         failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure

 

  • 具體使用步驟

1.建立管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

2.封裝請求參數
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"username"] = @"Test";
params[@"pwd"] = @"123";

3.發送請求

NSString *url = @"http://localhost:8080/Server/login";
[mgr POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 請求成功的時候調用這個block
NSLog(@"請求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 請求失敗的時候調用調用這個block
NSLog(@"請求失敗");
}];
// GET請求
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 請求成功的時候調用這個block
NSLog(@"請求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 請求失敗的時候調用調用這個block
NSLog(@"請求失敗");
}];

 

4.對服務器返回數據的解析
1.AFN能夠自動對服務器返回的數據進行解析
* 默認將服務器返回的數據當作JSON來解析

2.設置對服務器返回數據的解析方式
1> 當作是JSON來解析(默認作法)
* mgr.responseSerializer = [AFJSONResponseSerializer serializer];
* responseObject的類型是NSDictionary或者NSArray

2> 當作是XML來解析
* mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
* responseObject的類型是NSXMLParser

3> 直接返回data* 意思是:告訴AFN不要去解析服務器返回的數據,保持原來的data便可* mgr.responseSerializer = [AFHTTPResponseSerializer serializer];

相關文章
相關標籤/搜索