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 是请求回得数据
}];
}