点步

导航

AFN-上传文件

- (void)test
{
    //  创建一个管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    // demo.json 中返回的是JSON 数据
    // AFN 默认情况下,将服务器返回的数据当做JSON数据来解析.
    // http://localhost/demo.json
    NSString *urlString = @"http://localhost/demo.json";
    
    // 发送网络请求
    // NSString :访问的资源路径
    // parameters :封装需要上传给服务器的数据.
    //
    [mgr GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 网络请求成功之后的回调.
        // responseObject 服务器返回的信息.
        NSLog(@"请求成功responseObject:%@",responseObject);
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        // 网络请求失败之后的回调.
        // error 错误信息
        NSLog(@"请求失败error:%@",error);
    }];
}

假如服务器返回的数据部是JSON数据

//  如果用AFN发送的网络请求,返回的不是JSON数据,这个时候,需要告诉 AFN 服务器返回的是什么类型的数据,不然就会请求失败.
// 从服务器接受的数据类型,只有三种(AFN):
    // 特别注意:需要用 Response
    // 1. JSON 数据. --> [AFJSONResponseSerializer serializer]
    //    JSON --> [AFHTTPResponseSerializer serializer]
    // 2. XML数据. --> [AFXMLParserResponseSerializer serializer]
    //    XML --> [AFHTTPResponseSerializer serializer]
    // 3. 二进制数据. --> [AFHTTPResponseSerializer serializer]
    // 针对不同的数据类型,应该选择不同的解析器.
//  创建一个管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    // 默认情况下,AFN的解析器就是 [AFJSONRequestSerializer serializer];
    
    // 处理服务器返回的数据信息.
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    // 处理上传给服务器的数据信息
    // 需要向服务器提交 JSON 数据
    // mgr.requestSerializer = [AFJSONRequestSerializer serializer];
    // 将上传给服务器的数据,序列化成 plist 数据.
    // mgr.requestSerializer = [AFPropertyListRequestSerializer];
    
    NSString *urlString = @"http://localhost/123/1.html";
// 发送网络请求
    // NSString :访问的资源路径
    // parameters :封装需要上传给服务器的数据.
    //
    [mgr GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 网络请求成功之后的回调.
        // responseObject 服务器返回的信息.
        NSLog(@"请求成功responseObject:%@",responseObject);
        NSLog(@"%@",[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        // 网络请求失败之后的回调.
        // error 错误信息
        NSLog(@"请求失败error:%@",error);
        
    }];

}

返回是XML数据

- (void)test3
{
    //  创建一个管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
    
    NSString *urlString = @"http://localhost/resources/vedios.xml";
    
    [mgr GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 网络请求成功之后的回调.
        // responseObject 服务器返回的信息.
        NSLog(@"请求成功responseObject:%@",responseObject);
        
        // 如果接受的是 XML 数据,这个时候不能直接把NSXMLParser 赋值给字符串
        // NSLog(@"%@",[[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
        
        NSXMLParser *parser = responseObject;
        // 设置代理
        parser.delegate = self;
        
        // 开始解析数据
        [parser parse];
        
        // 如果用AFN解析XML数据,这个时候,需要遵循 NSXMLParserDelegate ,并且需要自己手动实现 delegate 方法,自己解析数据.
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        // 网络请求失败之后的回调.
        // error 错误信息
        NSLog(@"请求失败error:%@",error);
        
    }];
}

用AFN做下载  不靠谱

//  用AFN 做下载(大文件)不靠谱,(需要自己实现下载方法.)
- (void)test4
{
    //  创建一个管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
    
    NSString *urlString = @"http://localhost/123.zip";
    
    [mgr GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        // 网络请求成功之后的回调.
        // responseObject 服务器返回的信息.
        NSLog(@"请求成功responseObject:%@",responseObject);
        
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        // 网络请求失败之后的回调.
        // error 错误信息
        NSLog(@"请求失败error:%@",error);
        
    }];
}

用AFN做登陆信息

    //  创建一个管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    // 登录 服务器返回的是JSON 数据.
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    
    [parameters setObject:@"zhang" forKey:@"password"];
    [parameters setObject:@"zhangsan" forKey:@"username"];

    
    NSString *urlString = @"http://localhost/login/login.php";
    
//    [mgr GET:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
//        // 网络请求成功之后的回调.
//        // responseObject 服务器返回的信息.
//        NSLog(@"请求成功responseObject:%@",responseObject);
//        
//        
//    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//        // 网络请求失败之后的回调.
//        // error 错误信息
//        NSLog(@"请求失败error:%@",error);
//        
//    }];
    
    [mgr POST:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        //
        
        // responseObject 服务器返回的信息.
        NSLog(@"请求成功responseObject:%@",responseObject);
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        //
        // error 错误信息
        NSLog(@"请求失败error:%@",error);
    }];

 

posted on 2015-11-05 15:36  点步  阅读(222)  评论(0编辑  收藏  举报