iOS网络通信AFNetworking框架

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

网络获取的数据如下图

iOS网络通信AFNetworking框架_第1张图片


你可能感兴趣的:(IOS)