初學(xué)iOS,記錄一下自己遇到的一些問題,也希望能夠?qū)e人有所幫助
也是今天開始學(xué)習(xí)AFNetworking,看到3.0出來了,所以就做了一個demo學(xué)習(xí)了解了一下,感覺并不是太難理解,也因為自己的了解還在最底層階段吧,畢竟網(wǎng)絡(luò)這塊的知識內(nèi)容很多也很龐大的,要學(xué)的東西還有太多太多了......
簡介
AFNetworking是一個為 iOS 和 Mac OSX 制作的令人愉快的網(wǎng)絡(luò)庫,它建立在URL 裝載系統(tǒng)框架的頂層,內(nèi)置在Cocoa里,擴展了強有力的高級網(wǎng)絡(luò)抽象。它的模塊架構(gòu)被良好的設(shè)計,擁有豐富的功能,使用起來,簡單方便。
導(dǎo)入
首先在項目中Cocoapods中導(dǎo)入AFNetworking3.0庫(Xcode->Product-> Cocoapods->Create/Edit Podfile):
platform :ios, '8.0'
pod 'AFNetworking', '~> 3.0'
然后Product--> CocoaPods-->install Pods,等待...安裝完成...
使用
搭建一個簡單的界面,然后關(guān)聯(lián)到interface中。然后回到ViewController.m,在頭文件中導(dǎo)入 AFNetworking :

在loginButton方法中獲取輸入的賬號和密碼的內(nèi)容,并存儲到的parameters中:
//獲取輸入的賬號密碼
NSString *username = self.accountText.text;
NSString *password = self.passwordText.text;
進(jìn)行post請求:
//請求的參數(shù):即向服務(wù)器發(fā)送的參數(shù),比如登錄QQ時的賬號和密碼
NSDictionary *parameters = @{@"name":username,
@"password":password
};
//請求的網(wǎng)址:即請求的接口,這里的這個無效,具體的用你要用的
NSString *urlString = @"http://**********/Api/****/login";
//請求的manager,我也不知道找什么詞形容比較好,就理解成管理者吧
AFHTTPSessionManager *managers = [AFHTTPSessionManager manager];
//進(jìn)行POST請求
[managers POST:urlString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"請求成功,服務(wù)器返回的信息%@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError * error) {
NSLog(@"請求失敗,服務(wù)器返回的信息%@",error);
}];
如果你的賬號和密碼沒問題,對應(yīng)的接口也OK,那么只需要點擊登錄按鈕,一個簡單的登錄請求就成功了。
要注意的一點是,在AFNetworking 3.0中進(jìn)行HTTP請求,使用的是AFURLSessionManager,而在3.0之前版本的中,進(jìn)行HTTP請求的AFHTTPRequestOperationManager已經(jīng)被棄用了。
完整代碼如下:
#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;
//請求的參數(shù)
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(@"請求成功,服務(wù)器返回的信息%@",responseObject);
} failure:^(NSURLSessionDataTask *task, NSError * error) {
NSLog(@"請求失敗,服務(wù)器返回的錯誤信息%@",error);
}];
}
@end