HTTP POST请求并将请求参数设置成请求体添加到请求中
2016-05-26 16:02
465 查看
- (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; }
相关文章推荐
- POST与GET方法的区别简要分析
- C#使用post发送和接收数据的方法
- PHP响应post请求上传文件的方法
- VB使用XMLHTTP实现Post与Get的方法
- 分享下GET和POST的真正区别
- php采用ajax数据提交post与post常见方法总结
- ajax 的post方法实例(带循环)
- C#实现的三种模拟自动登录和提交POST信息的方法
- ASP.Net Post方式获取数据流的一种简单写法
- C#中在WebClient中使用post发送数据实现方法
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述
- asp教程中get post提交表单有5点区别
- asp.net 从POST的数据流中提取参数和文件
- 区分ASP.NET中get方法和post方法
- php下通过POST还是GET来传值
- jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
- JS使用post提交的两种方式
- ajax请求get与post的区别总结
- ajax post方式表单提交setRequestHeader报错解决方法