博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AFN-上传文件
阅读量:5083 次
发布时间:2019-06-13

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

- (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);    }];

 

转载于:https://www.cnblogs.com/gp886/p/4939726.html

你可能感兴趣的文章
synchronized
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>