IOS与服务器交互POST 和 GET
2015-12-01 16:50
344 查看
背景介绍:
当开发IOS应用时,IOS端会和服务器进行交互。IOS端会向服务器传送数据,如:登录功能,注册功能,发送用户填写信息到服务器等功能,都会用到POST方法。也会从服务器获取数据,就会用到GET方法。接下来,我来讲述一下IOS端与服务器的交互过程:
当在某种需求下,我需要向服务器发送数据
NSURL *url = [NSURL URLWithString:@"http://xx/xx?user_id=xx&token=xx"];//设置请求的url NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @"POST";//POST请求 request.timeoutInterval = 60; NSData *data = [NSJSONSerialization dataWithJSONObject:dic_test options:0 error:nil];//将发送数据转化成JSON(NSData类型) request.HTTPBody = data; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];//设置发送内容类型为 JSON NSURLConnection *connect = [NSURLConnection connectionWithRequest:request delegate:self]; [connect start]; [m_respond_data setLength:0];//设置接收POST结果的变量(NSMutableData类型)每次发送前先清空数据
实现NSURLConnectionDelegate的代理方法
// 当服务端提供了有效的数据来创建NSURLResponse对象时,代理会收到connection:didReceiveResponse:消息。 // 这个代理方法会检查NSURLResponse对象并确认数据的content-type,MIME类型,文件 名和其它元数据。 // 需要注意的是,对于单个连接,我们可能会接多次收到connection:didReceiveResponse:消息;这咱情况发生在 // 响应是多重MIME编码的情况下。每次代理接收到connection:didReceiveResponse:时,应该重设进度标识 // 并丢弃之前接收到的数据。 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSHTTPURLResponse *res = (NSHTTPURLResponse *)response; NSLog(@"%@",[res allHeaderFields]); } //接收到服务器传输数据的时候调用,此方法根据数据大小执行若干次,将返回的数据全部接收到一起 -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [m_respond_data appendData:data]; } //数据传完之后调用此方法 -(void)connectionDidFinishLoading:(NSURLConnection *)connection { NSDictionary *respond = [NSJSONSerialization JSONObjectWithData:m_respond_data options:NSJSONReadingMutableLeaves error:nil]; //根据数据信息将界面作出相应的处理 if ([[respond objectForKey:@"errcode"] isEqualToNumber:[NSNumber numberWithInt:0]]) { } } //网络请求过程中,出现任何错误(断网,连接超时等)会进入此方法 -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"%@",[error localizedDescription]); }
相关文章推荐
- Http与服务器的交互(主要post和get)
- Get和Post与服务器交互的区别
- android get或post及HttpClient与服务器数据交互
- 浏览器和服务器交互方式GET和POST的区别
- 程序使用 HTTP 协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成
- Android利用HttpClient和Post与Get请求与服务器交互
- iOS 前端和后端交互 get请求 post请求
- Python搭建Web服务器,与Ajax交互,接收处理Get和Post请求的简易结构
- Http服务器的交互请求 GET,POST,PUT和DELETE
- 【Android】Android与服务器交互 POST上传多个图片文件、文本内容 GET下载图片
- Android数据与服务器交互的GET,POST,HTTPGET,HTTPPOST的使用
- Http与服务器交互的不同方法(get,post)
- Get和Post与服务器交互的区别
- J2ME HTTP方式与服务器交互信息:GET方式和POST方式
- IOS 请求服务器的两种方法GET 和 POST
- 用Ajax以GET或POST的方式来和服务器进行数据交互
- android中使用get、post和HttpClient方式与服务器交互
- Android通过get,post方式客户端与服务器端交互实例(慕课网笔记)
- iOS开发之iPhone通过get和post方式请求asp.net webservice
- iOS 开发 中级:HTTP请求 GET POST 网络编程实现