DownLoadTool.h
#import <Foundation/Foundation.h>
typedef void(^PassValueBlock)(id value);
@interface DownLoadTool : NSObject
+(void)downLoadWithURL:(NSString *)urlStr method:(NSString *)method param:(NSDictionary *)paramDic passValue:(PassValueBlock)passValue;
@end
DownLoadTool.m
#import "DownLoadTool.h"
@implementation DownLoadTool
+(void)downLoadWithURL:(NSString *)urlStr method:(NSString *)method param:(NSDictionary *)paramDic passValue:(PassValueBlock)passValue{
//准备可变字符串
NSMutableString * temp = urlStr.mutableCopy;
//创建请求对象
NSMutableURLRequest * request = [[NSMutableURLRequest alloc]init];
//判断get符合post方法
if ([method isEqualToString:@"GET"]) {
if (paramDic != nil) {
//拼接
[temp appendString:@"?"];
// 取出所有key值
for (NSString *s in paramDic.allKeys) {
// 判断后缀
if ([temp hasSuffix:@"?"]) {
// 参数拼入 key = Value
[temp appendFormat:@"%@=%@",s,paramDic[s]];
}else{
[temp appendFormat:@"&%@=%@",s,paramDic[s]];
}
}
}
// 创建请求
request.URL = [NSURL URLWithString:temp];
}else if ([method isEqualToString:@"POST"]){
//设置URL
request.URL = [NSURL URLWithString:temp];
[request setHTTPMethod:@"POST"];
//创建body
if (paramDic != nil) {
//准备可变字符串
NSMutableString * tempStr = [NSMutableString string];
for (NSString *s in [paramDic allKeys]) {
//判断是否为第一组
if (tempStr.length == 0) {
[tempStr appendFormat:@"%@=%@",s,paramDic[s]];
}else{
[tempStr appendFormat:@"&%@=%@",s,paramDic[s]];
}
}
//将参数转成NSData
NSData * paraData = [tempStr dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:paraData];
}
}
// 发送请求 建立连接
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
passValue(data);
// NSLog(@"%@",data);
}];
// return nil;
}
@end