AFNetworking 使用  基础篇

1. AFN一套网络操作的第三方框架
a. NSURLConnection iOS2.0之后就有
b. NSURLSession iOS7.0之后才有
c. 默认支持序列化和反序列化json,xml需要自己解析 d. 优秀的错误处理机制
e. 封装了Reachability

f. 支持https


AFHTTPRequestOperationManager初始化的方法

○ self.requestSerializer = [AFHTTPRequestSerializer serializer];请求数据的序列化

○ self.responseSerializer = [AFJSONResponseSerializer serializer]; 返回数据的序列化


• <AFURLRequestSerialization>

发送给服务器的数据
二进制(默认)
json

plist 从服务器接收的数据

○ AFHTTPRequestSerializer
○ AFJSONRequestSerializer
○ AFPropertyListRequestSerializer

<AFURLResponseSerialization>
○ AFHTTPResponseSerializer
○ AFJSONResponseSerializer
○ AFXMLParserResponseSerializer
○ AFXMLDocumentResponseSerializer ○ AFPropertyListResponseSerializer ○ AFImageResponseSerializer

○ AFCompoundResponseSerializer

// get请求 不带参数

- (void)demo1{

    NSString *str = @"http://127.0.0.1/demo11.json";

//创建一个管理者

    AFHTTPRequestOperationManager *manager =[AFHTTPRequestOperationManager manager];

    //管理者发起请求

    [manager GET:str parameters:nil success:^void(AFHTTPRequestOperation *ope , id json) {

        NSLog(@"%@",json);

    } failure:^void(AFHTTPRequestOperation *op, NSError *error) {

        NSLog(@"%@",error);

    }];

}

//带参数的get

- (void)demo2{

    NSString *str = @"http://127.0.0.1/php/login.php";

   

    AFHTTPRequestOperationManager *manager =[AFHTTPRequestOperationManager manager];

    //发送的参数

    NSDictionary *dic = @{@"username":@"123&abc",@"password":@"abc"};

   

    [manager GET:str parameters:dic success:^void(AFHTTPRequestOperation *ope , id json) {

        NSLog(@"%@",json);

    } failure:^void(AFHTTPRequestOperation *op, NSError *error) {

        NSLog(@"%@",error);

    }];

}

//带参数的post

- (void)demo3{

    NSString *str = @"http://127.0.0.1/php/login.php";

   

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    //发送的参数

    NSDictionary *dic = @{@"username":@"123&abc",@"password":@"abc"};

   

    [manager POST:str parameters:dic success:^ void(AFHTTPRequestOperation *op , id json) {

        NSLog(@"%@",json);

    } failure:^ void(AFHTTPRequestOperation *op, NSError *error) {

        NSLog(@"%@",error);

    }];

}

//post上传文件

- (void)demo4{

    NSString *str = @"http://127.0.0.1/upload/upload.php";



    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    [manager POST:str parameters:nil constructingBodyWithBlock:^ void(id<AFMultipartFormData> formData) {

       

//        userfile

        //上传文件

        NSURL *fileUrl = [[NSBundle mainBundle] URLForResource:@"swifter.pdf" withExtension:nil];

        [formData appendPartWithFileURL:fileUrl name:@"userfile" fileName:@"aaa.pdf" mimeType:@"application/pdf" error:nil];

       



       

    } success:^ void(AFHTTPRequestOperation *op, id json) {

        NSLog(@"%@",json);

    } failure:^ void(AFHTTPRequestOperation *op, NSError *error) {

        NSLog(@"%@",error);

    }];

}

//设置解析响应的serializer  默认是JOSN  如果要返回html 或其它格式。必须要手动设置

- (void)demo5{

    NSString *str = @"http://www.baidu.com";



     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

   

    //设置解析响应的serializer

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

   

   

    [manager GET:str parameters:nil success:^ void(AFHTTPRequestOperation *op, id data) {

        NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

       

        NSLog(@"%@",html);

       

    } failure:^ void(AFHTTPRequestOperation *op, NSError *error) {

        NSLog(@"%@",error);

    }];

}

   //josn 以html 格式返回的代码

- (void)demo7{

    NSString *str = @"http://c.m.163.com/nc/article/headline/T1348647853363/0-140.html";

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

   

    manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

   

    [manager GET:str parameters:nil success:^void(NSURLSessionDataTask *op, id data) {

        NSLog(@"%@",data);

       

    } failure:^ void(NSURLSessionDataTask *op, NSError *error) {

        NSLog(@"%@",error);

    }]; 

}

 

你可能感兴趣的:(NetWork)