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