初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助
也是今天开始学习AFNetworking,看到3.0出来了,所以就做了一个demo学习了解了一下,感觉并不是太难理解,也因为自己的了解还在最底层阶段吧,毕竟网络这块的知识内容很多也很庞大的,要学的东西还有太多太多了......
简介
AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能,使用起来,简单方便。
导入
首先在项目中Cocoapods中导入AFNetworking3.0库(Xcode->Product-> Cocoapods->Create/Edit Podfile):
platform :ios, '8.0'
pod 'AFNetworking', '~> 3.0'
然后Product--> CocoaPods-->install Pods,等待...安装完成...
使用
搭建一个简单的界面,然后关联到interface中。然后回到ViewController.m,在头文件中导入 AFNetworking :
在loginButton方法中获取输入的账号和密码的内容,并存储到的parameters中:
//获取输入的账号密码
NSString *username = self.accountText.text;
NSString *password = self.passwordText.text;
进行post请求:
//请求的参数:即向服务器发送的参数,比如登录QQ时的账号和密码
NSDictionary *parameters = @{@"name":username,
@"password":password
};
//请求的网址:即请求的接口,这里的这个无效,具体的用你要用的
NSString *urlString = @"http://**********/Api/****/login";
//请求的manager,我也不知道找什么词形容比较好,就理解成管理者吧
AFHTTPSessionManager *managers = [AFHTTPSessionManager manager];
//进行POST请求
[managers POST:urlString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"请求成功,服务器返回的信息%@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError * error) {
NSLog(@"请求失败,服务器返回的信息%@",error);
}];
如果你的账号和密码没问题,对应的接口也OK,那么只需要点击登录按钮,一个简单的登录请求就成功了。
要注意的一点是,在AFNetworking 3.0中进行HTTP请求,使用的是AFURLSessionManager,而在3.0之前版本的中,进行HTTP请求的AFHTTPRequestOperationManager已经被弃用了。
完整代码如下:
#import "ViewController.h"
#import
@interface ViewController ()
@property (strong, nonatomic) IBOutlet UITextField *accountText;
@property (strong, nonatomic) IBOutlet UITextField *passwordText;
- (IBAction)loginButton:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)loginButton:(id)sender {
/**
* AFNetworking 3.0
*/
//获取输入的账号密码
NSString *username = self.accountText.text;
NSString *password = self.passwordText.text;
//请求的参数
NSDictionary *parameters = @{@"username":username,
@"password":password
};
//请求的url
NSString *urlString = @"http://**********/Api/****/login";
//请求的managers
AFHTTPSessionManager *managers = [AFHTTPSessionManager manager];
//请求的方式:POST
[managers POST:urlString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"请求成功,服务器返回的信息%@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError * error) {
NSLog(@"请求失败,服务器返回的错误信息%@",error);
}];
}
@end