iOS-使用NSURLConnection进行Http Get和Post请求网络数据
来源:互联网 发布:淘宝联盟能分享到qq群 编辑:程序博客网 时间:2024/06/05 01:36
Http是常用的一种网络协议,可以通过Get和Post两种方式请求数据。
在OC中可以通过使用NSURLConnection类来进行Http请求获取数据。然而这个类在iOS9.0以后官方就不推荐使用了,进而推荐的是NSURLSession。此外,iOS9.0以后会限制http请求,而改用更安全的https请求。
一个NSURLConnection对象可以加载指定的NSURL对象的内容。这个对象功能很少,主要用于控制异步加载URL请求内容的开始和结束。其提供很便捷的方法加载URL的内容,其中包括同步和使用回调块的异步方式。
如果想实现更好的控制效果,你可以创建一个带有遵循了NSURLConnectionDelegate
和NSURLConnectionDataDelegate
协议的委托对象的URL连接对象。这个连接会在使用异步加载数据时,向委托对象提供当前加载进度和状态。这些委托方法都是在初始化异步加载操作的同一个线程中被调用的。
解除iOS9.0显示http请求
在info.plist中增加以下字段:
<key>NSAppTransportSecurity</key><dict> <key>NSAllowsArbitraryLoads</key> <true/></dict>
同步请求
GET请求方式可以看做是将需要传输的参数附加在url链接上进行网络请求。
NSMutableURLRequest *url = [[NSMutableURLRequest alloc] init]; url.URL = [NSURL URLWithString:@"http://www.baidu.com"]; url.HTTPMethod = @"GET"; //url.HTTPMethod = @"POST"; NSError *error; //发送同步请求 NSData * data = [NSURLConnection sendSynchronousRequest:url returningResponse:nil error:&error]; if (!error) { NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); } else { NSLog(@"%@", error); }
POST请求也很简单,只要把HTTPMethod
属性改成@"POST"
即可。
异步请求
NSMutableURLRequest *url = [[NSMutableURLRequest alloc] init]; url.URL = [NSURL URLWithString:@"http://www.baidu.com"]; url.HTTPMethod = @"GET"; //url.HTTPMethod = @"POST"; NSError *error; //发送同步请求 [NSURLConnection sendAsynchronousRequest:url queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { if (!error) { //成果获取数据 NSLog(@"%@", response); NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); } else { NSLog(@"%@", error); } }];
同理如果发送POST请求的话,还需要将需要传的参数设置为HTTPBody
的值。当然还要注意字符编码问题!!!
url.HTTPBody = @"prama1=1&prama2=2";
0 0
- iOS-使用NSURLConnection进行Http Get和Post请求网络数据
- ios之NSURLConnection网络请求数据/GET与POST方法
- iOS NSURLConnection GET和POST
- Http使用get或post请求网络数据
- Http使用get或post请求网络数据
- swift-使用NSURLConnection进行数据的提交和获取(POST与GET)
- 【iOS开发-网络】使用NSURLSessionDataTask发送get和post请求
- ios发送http GET和POST请求
- iOS 发送GET和POST网络请求
- swift开发网络篇—利用NSURLConnection GET请求和POST请求
- 使用HttpClient进行get和post请求
- IOS开发笔记-NSURLConnection同步请求和异步请求以及get方法,post方法
- iOS中GET 和 POST 数据请求
- 数据请求的两种方法 get post NSURLConnection请求
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- SSH启动错误
- 统计文件中每个单词的出现次数
- SPARK_RDD_API
- html5中使用canvas画时钟
- java实现以类为对象把各属性值放入map
- iOS-使用NSURLConnection进行Http Get和Post请求网络数据
- java中的类与对象
- 例题:百练2815 城堡问题
- hdu1159 Common Subsequence(最长公共子序列)
- Activity重建时保持Fragment状态的方法
- 美版S4 (SCH-R970) 刷机完全教程(非常详细)
- Java中通过TCP协议发送和接收数据-Socket编程
- C++ 将浮点数的前四位存为string
- js获取当前日期的前7天