iOS开发笔记:实现简单的登录(通过Post请求)

初学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 <AFNetworking.h>

@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

推荐阅读更多精彩内容