您的位置:首页 > 理论基础 > 计算机网络

iOS网络通信AFNetworking框架

2015-12-25 15:35 495 查看
1.在学网络编程前,先掌握几个基本概念

1.1客户端(Client):移动应用(iOS、android等应用)

1.2服务器(Server):为客户端提供服务、提供数据、提供资源的机器

1.3请求(Request):客户端向服务端索取数据的一种行为

1.4响应(Response):服务器对客户端的请求做出的反应,一般指返回数据给客户端

2.在iOS中,常见的发送HTTP请求的方案

2.1苹果自带

1)NSURLConnection【用法简单】

2)NSURLSession【iOS7新出的技术】

3)CFNetwork【NSURL*的底层,纯C语言】

2.2第三方框架

1)AFIHttpRequest【功能强大,可惜停止更新了】

2)AFNetworking【简单易用,维护和使用者多,推荐使用】

3)MKNetworkKit【产自印度,维护和使用者少】

3.正式开始讲解AFN框架

#import "ViewController.h"
#import "AFNetworking.h"

#define INTERNET_TIMEOUT 10;

@interface ViewController ()

@property (nonatomic, strong) AFHTTPRequestOperationManager *operationManager;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

//实例化一个请求管理器
self.operationManager = [AFHTTPRequestOperationManager manager];
//设置网络请求超时时间
self.operationManager.requestSerializer.timeoutInterval = INTERNET_TIMEOUT;
//设置响应的数据格式
self.operationManager.responseSerializer = [AFJSONResponseSerializer serializer];
//设置响应可接受内容类型[可以在源码里面修改,达到一劳永逸的效果,本人不喜欢这么做就是了]
self.operationManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", @"application/json", @"text/javascript", @"text/plain", nil];

//get请求
NSString *url = @"http://apis.baidu.com/txapi/weixin/wxhot?";//请求地址
NSDictionary *parameters = @{@"num":@"1", @"rand":@"1", @"word":@"盗墓笔记", @"page":@"1"};//请求参数

[self.operationManager.requestSerializer setValue:@"自己的apikey" forHTTPHeaderField:@"apikey"];//设置请求头【这里是调用了微信热门精选的API,apikey自己去注册即可获得】

[self.operationManager GET:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSLog(@"%@", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"%@", error);

}];

//post请求
/*[self.operationManager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSLog(@"%@", responseObject);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"%@", error);

}];*/ //方法是这个,自行测试
}

@end

网络获取的数据如下图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: