//
// WLHTTPClient.m
// WLVkoListen
//
// Created by long on 14-12-15.
// Copyright (c) 2014年 WLong. All rights reserved.
//
#import "WLHTTPClient.h"
#define SuppressPerformSelectorLeakWarning(Stuff) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
Stuff; \
_Pragma("clang diagnostic pop") \
} while (0)
@implementation WLHTTPClient
+ (WLHTTPClient *)sharedClient
{
static WLHTTPClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[WLHTTPClient alloc]init];
});
return _sharedClient;
}
- (void)postInfoWithDelegate:(id<WLHTTPClientDelegate>)delegate
withMethod:(NSString *)method
withParams:(NSDictionary *)params
withSuccuessMethod:(SEL )successMethod
withFailedMethod:(SEL )failMethod
{
NSString *urlStr = [NSString stringWithFormat:@"%@%@",baseHttpUrl,method];
__weak ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]];
[request setRequestMethod:@"POST"];
for (int i = 0; i < [params allKeys].count; i++) {
[request addPostValue:params[[params allKeys][i]] forKey:[params allKeys][i]];
}
[request setCompletionBlock:^{
NSData *jsonData = request.responseData;
id result = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
SuppressPerformSelectorLeakWarning(
[delegate performSelector:successMethod withObject:result];
);
}];
[request setFailedBlock:^{
SuppressPerformSelectorLeakWarning(
[delegate performSelector:failMethod withObject:@"网络连接失败,请检查您的网络连接或重试!"];
);
}];
[request startAsynchronous];
}
@end
更多iOS疯狂详解:http://blog.csdn.net/wanglongblog
原文地址:http://blog.csdn.net/wanglongblog/article/details/41963191