您的位置:首页 > 其它

AFN-上传文件

2015-11-05 15:36 351 查看
- (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);
}];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: