AFNetworking

下载AFNetworking资源包 https://github.com/AFNetworking/AFNetworking



将AFNetworking文件夹导入到需要使用的项目中

在需要使用的地方加入    #import "AFNetworking.h" (已经将AFNetworking文件夹中所有类都导入到了该类中)
注:在AFNetworking中使用了arc,如果你使用的环境是arc,但代码不需要使用arc时需加"-fno-objc-arc",在不使用arc的环境中使用             AFNetworking中则加入"-fobjc-arc"

实例
导入了AFNetworking文件夹,环境是arc,在.m类中加入了#import "AFNetworking.h"(因为我只使用一个类,当使用多个类时,且需要多次导入时,可以在.pch文件中插入#import "AFNetworking.h"




GET请求

1.获取一个需要请求数据的NSString格式的url
2.设置请求数据类型(AFHTTPRequestSerializer)
3.创建一个请求体 (调用了AFURLRequestSerialization类的方法)
4.创建AFHTTPRequestOperation并发起请求
5.判断是否请求成功,如果成功则调用成功block块,失败则调用(failure block)块 (此方法在AFHTTPRequestOperation类中)
6.创建一个队列,将AFHTTPRequestOperation加入队列中



//    1
    NSString *urlStr = @"http://www.baidu.com";
//    2
    AFHTTPRequestSerializer *serialize = [AFHTTPRequestSerializer serializer];
//    3
    NSMutableURLRequest *urlRequest = [serialize requestWithMethod:@"GET" URLString:urlStr parameters:nil error:nil];
//    4
    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
//    5
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        
        NSLog(@"成功:%@",responseObject);
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
        NSLog(@"失败:%@",error);
        
    }];
//6
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue addOperation:operation];


POST请求
1.获取一个需要请求数据的NSString格式的url 和 url的参数(key和value)
2.设置请求数据类型(AFHTTPRequestSerializer)
3.创建一个请求体 (调用了AFURLRequestSerialization类的方法)
4.创建AFHTTPRequestOperation并发起请求
5.判断是否请求成功,如果成功则调用成功block块,失败则调用(failure block)块 (此方法在AFHTTPRequestOperation类中)
6.创建一个队列,将AFHTTPRequestOperation加入队列中

//    1
    NSString  *pathStr = @"http://api.hudong.com/iphonexml.do";
    NSDictionary *params =@{@"type":@"focus-c"};
//    2
    AFHTTPRequestSerializer *requestSerializer = [AFHTTPRequestSerializer serializer];
//    3
    NSMutableURLRequest *urlrequset = [ requestSerializer requestWithMethod:@"POST" URLString:pathStr parameters:params error:nil];
//    4
    AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlrequset];
//    5
    [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        
        NSLog(@"成功:%@",responseObject);
        
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        
        NSLog(@"失败:%@",error);
        
    }];
//    6
    NSOperationQueue *queue = [ [NSOperationQueue alloc] init];
    [queue addOperation:requestOperation];

从两种代码中可以看出GET请求时不需要URL参数,而POST请求时需要URL的参数



GET请求与POST请求的区别
1.请求时,POST请求需要带参数,而GET请求不需要
2.GET是从服务器获取数据,而POST则是向服务器传送数据
3.GET传送数据量较小,只有2kb,而POST传送数据量则没有限制
4.GET安全性低,POST安全性高(GET请求时帐号和密码在URL中,可以被截取,而POST的帐号和密码则被封装到了字典中,不容易被截取)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值