自定义NetWorkRequest类 继承自NSObject ,并定义一个Block
定义post 请求方法
#import <Foundation/Foundation.h>
typedef void (^CallDataBlock)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error);
@interface NetWorkRequest : NSObject
+ ( void ) sendAsynchronousRequest:(NSString *) urlString parameter:(NSMutableDictionary *) parameter CallDataBlock:(CallDataBlock) CallDataBlock;
@end
实现post请求方法
+ ( void ) sendAsynchronousRequest:(NSString *) urlString parameter:(NSMutableDictionary *) parameter CallDataBlock:(CallDataBlock) CallDataBlock {
urlString = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *_Nullable request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadRevalidatingCacheData
timeoutInterval:3];
request.HTTPMethod = @"post";
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue:@"application/json" forKey:@"Content-Type"];
[request setAllHTTPHeaderFields:dic];
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[parameter mj_JSONString] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postBody];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:CallDataBlock];
[dataTask resume];
}
发起请求
[NetWorkRequest sendAsynchronousRequest:@"" parameter:@{} CallDataBlock:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
这里的data就是请求返回回来的数据
}];