AFNetWorking GET 和 POST请求 封装

GET请求

WangLuoQingQiu.h

#import <Foundation/Foundation.h>
#import "BaseHeader.h"
typedef void(^AFNData)(id block);

typedef void(^AFNDataa)(id BLOCK);

@interface WangLuoQingQiu : NSObject

+ (void)getdataWithString:(NSString *)string block:(AFNData)block BLOCK:(AFNDataa)BLOCK;

@end

WangLuoQingQiu.m

#import "WangLuoQingQiu.h"
@implementation WangLuoQingQiu

+ (void)getdataWithString:(NSString *)string block:(AFNData)block BLOCK:(AFNDataa)BLOCK
{
    AFNetworkReachabilityManager *netWorkingManager = [AFNetworkReachabilityManager sharedManager];
    NSString *url_string = [NSString stringWithFormat:@"%@", string];
    NSURL *URL = [NSURL URLWithString:url_string];
    url_string = [url_string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"text/json", @"application/json", @"text/javascript", @"text/html",  nil];
    [manager GET:URL.absoluteString parameters:nil success:^(NSURLSessionTask *task, id responseObject) {
        [netWorkingManager stopMonitoring];
        block(responseObject);
//        NSLog(@"JSON: %@", responseObject);
    } failure:^(NSURLSessionTask *operation, NSError *error) {
        NSLog(@"Error: %@", error);
        BLOCK (operation);
    }];

}

@end

调用方法

- (void)getData:(NSString *)url
{
    [WangLuoQingQiu getdataWithString:url block:^(id block) {
        //block是请求回来的数据,是个字典或者数组
    } BLOCK:^(id BLOCK) {
        //网络请求失败执行的方法
    }];
}

POST请求

AFNPostBlock.h

#import <Foundation/Foundation.h>
#import <AFNetworking.h>
typedef void(^AFNData)(id block);

@interface AFNPostBlock : NSObject
+(void)getDataWithString:(NSString *)string body:(NSDictionary *)parameters block:(AFNData)block;

@end

AFNPostBlock.m

+ (void)getDataWithString:(NSString *)string body:(NSDictionary *)parameters block:(AFNData)block
{
    AFNetworkReachabilityManager *netWorkManager = [AFNetworkReachabilityManager sharedManager];
    
    NSString *url_string = [NSString stringWithFormat:@"%@",string];
    url_string = [url_string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain",@"text/json",@"application/json",@"text/javascript",@"text/html",nil];
    
    [manager POST:url_string parameters:parameters success:^(NSURLSessionTask *task, id responseObject)  {
        
        [netWorkManager stopMonitoring];

        block(responseObject);
        
    } failure:^(NSURLSessionTask *operation, NSError *error) {

        NSLog(@"失败 === %@",error);
           dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

           NSLog(@"Error: %@", error);
        });
    }];
}

调用方法

- (void)postDateUrl:(NSString *)url body:(NSDictionary *)body
{
    [AFNPostBlock getDataWithString:url body:body block:^(id block) {
//block 是请求回得数据
    }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,480评论 0 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 同步请求可以从因特网请求数据, 一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成, 才可以进行下一步操...
    小灬博阅读 4,353评论 2 4
  • #网络请求中的get post 区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,...
    gogoingmonkey阅读 5,914评论 1 11
  • 杨晓东,江湖人称老杨,核桃品牌策划CEO,核桃帮创始人 上周末去朋友家玩,看到他的孩子在画《秘密花园》, 一时技痒...
    老杨开窍阅读 1,475评论 0 1