- (void)post:(NSString *)URL param:(NSDictionary *)param finishBlock:(void (^) (NSURLResponse *response, NSData *data, NSError *connectionError)) block {
//网络请求字符串
NSString *urlString = @"";
//UTF-8转码
NSString *urlStr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//把传进来的URL字符串变为URL地址
NSURL *url = [NSURL URLWithString:urlStr];
//请求初始化
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20];
//解析请求参数,用NSDictionary来存参数,通过自定义的函数把它解析成post格式的字符串
NSString *parseParam = [self setDictionaryToString:param];
//将字符串转化成data数据
NSData *postData = [parseParam dataUsingEncoding:NSUTF8StringEncoding];
//设置请求体
[request setHTTPBody:postData];
//设置请求方法
[request setHTTPMethod:@"POST"];
//创建一个新的队列
NSOperationQueue *queue = [NSOperationQueue new];
//发送异步请求,请求完以后返回的数据,通过completionHandler参数来调用
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:block];
}
//字典转字符串
- (NSString *)setDictionaryToString:(NSDictionary *)dic {
NSString *keyValueFormat;
NSMutableString *result = [NSMutableString new];
//实例化一个key枚举器用来存放dictionary的key
NSEnumerator *keyEnum = [dic keyEnumerator];
id key;
while (key = [keyEnum nextObject]) {
keyValueFormat = [NSString stringWithFormat:@"%@=%@&",key,[dic valueForKey:key]];
[result appendString:keyValueFormat];
}
return result;
}
HTTP POST请求并将请求参数设置成请求体添加到请求中
最新推荐文章于 2024-08-28 18:38:51 发布