iOS_POST_网络请求
2015-07-21 17:30
489 查看
同步的 post 请求
异步的 post 请求
#pragma mark - 同步的 post 请求 - (IBAction)POSTSynButtonDidClicked:(UIButton *)sender { // 1、拼接 baseUrlString NSString *baseUrlString = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"; // 2、根据字符串创建 URL(统一资源定位符) NSURL *url = [NSURL URLWithString:baseUrlString]; // 3、创建可变的 request 对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 1> 设置请求类型为 POST (默认为 GET) [request setHTTPMethod:@"POST"]; // 2> 需要设置 POST 参数 NSString *bodyString = @"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"; // 把字符串转化为 NSData NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:bodyData]; // 4、请求数据(同步) NSData *receiveData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; // 5、系统自带json解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:receiveData options:(NSJSONReadingMutableContainers) error:nil]; NSArray *array = dict[@"news"]; self.newsArray = [NSMutableArray array]; for (NSDictionary *smallDict in array) { NewsModal *modal = [[NewsModal alloc] init]; [modal setValuesForKeysWithDictionary:smallDict]; [self.newsArray addObject:modal]; } for (NewsModal *modal in self.newsArray) { NSLog(@"%@", modal.title); } }
异步的 post 请求
#pragma mark - 异步的 post 请求 - (IBAction)POSTAsynButtonDidClicked:(UIButton *)sender { // 1、拼接 baseUrlString NSString *baseUrlString = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx"; // 2、根据字符串创建 url(统一资源定位符) NSURL *url = [NSURL URLWithString:baseUrlString]; // 3、创建可变 request 对象 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 设置 request 对象的相关属性 // 1>设置默认请求类型为 POST [request setHTTPMethod:@"POST"]; // 2>设置POST参数 NSString *bodyString = @"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213"; // 3>把字符串转化为 NSData NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding]; [request setHTTPBody:bodyData]; // 4、请求数据(异步) [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { // 5、系统自带json解析 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers) error:nil]; NSArray *array = dict[@"news"]; self.newsArray = [NSMutableArray array]; for (NSDictionary *smallDict in array) { NewsModal *modal = [[NewsModal alloc] init]; [modal setValuesForKeysWithDictionary:smallDict]; [self.newsArray addObject:modal]; } for (NewsModal *modal in self.newsArray) { NSLog(@"%@", modal.title); } // 对 tableView 进行 reloadData 否则第一次不显示内容 }]; }
相关文章推荐
- GDB 单步调试 http://www.cppblog.com/baby-fly/archive/2010/07/27/121395.html
- iOS_GET_网络请求
- 该伙伴事务管理器已经禁止了它对远程/网络事务的支持
- Linux中TCP和UDP发送和接收缓冲区
- iOS开发中使用AFNetWorking进行https请求
- 网络字体/图标字体初体验
- 隧道和网络虚拟化:NVGRE vs VXLAN
- ./configure: error: the HTTP rewrite module requires the PCRE library
- linux脚本检测本机与指定IP段网络是否畅通
- httpd 命令解释
- PC-网络教程之宽带小型组网方案
- BAT-使用BAT方法判断网络启动EXE(快捷方式)
- Android 网络通信框架Volley简介(Google IO 2013)
- iOS:关于获取网络类型和运营商信息
- TCP/IP学习(四)TCP缓冲区大小及限制
- ERROR (ConnectionError): HTTPConnectionPool (Caused by <class 'socket.error'>: [Errno 111] Connecti
- 深入理解HTTP Session
- 日志转载:HTTPS那些事(二)SSL证书
- http协议与https协议
- [IOS&SOCKET]SOCKET切换网络,SOCKET链路不通