在实际的应用开发过程中,同步请求的用户体验并非非常好;我们都知道。Apple是非常重视用户体验的。这一点也成为了行业的标杆,没实用户哪里来的好产品。所以用户体验是极其重要的。貌似废话有点多。接下来进入正题。同步请求不好。那么就使用异步请求的方法。在开发中,异步请求会使用
NSURLConnetction 类的托付协议 NSURLConnectionDelegate。在请求不同阶段会回调托付对象方法,详细方法例如以下:

connection:didReceiveData: 当请求成功时,这种方法就会開始接收数据,假设数据量非常多,它会被多次调用; connection:didFailWithError: 从方法中我们也能够大体知道这种方法的作用,没错,就是用来处理当载入数据出现异常的时候调用的; connectionDidFinishLoading:
从方法的命名中也能够知道这种方法是用来当成功完毕载入数据时调用的。但在 connection:didReceiveData: 方法之后运行。

PS:记得在.h头文件里的 @interface 接口中增加托付的申明<NSURLConnectionDelegate> 哦!

加下来是详细实现的代码:

<span style="font-size:32px;"> * 開始请求Web Service
*/
-(void)startRequest
{ NSString *strURL = [[NSString alloc] initWithFormat:
@"请求server地址"]; NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; NSURLConnection *connection = [[NSURLConnection alloc]
initWithRequest:request
delegate:self]; if (connection) {
self.datas = [NSMutableData new];
} } #pragma mark- NSURLConnection method
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.datas appendData:data]; //利用NSMutalbeArray数组datas不断接收server端返回的数据
} -(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error { NSLog(@"%@",[error localizedDescription]);
}
//当connection:didReceiveData:方法成功接收数据后回调这种方法
- (void) connectionDidFinishLoading: (NSURLConnection*) connection {
NSLog(@"请求完毕...");
NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:_datas options:NSJSONReadingAllowFragments error:nil];
[self reloadView:dict]; //从服务端接收完整数据后,再把数据发送回表示层的视图控制器
}</span>

iOS 中client和server的 Web Service 网络通信 (2)的更多相关文章

  1. iOS 中client和server的 Web Service 网络通信 (1)

    当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的.      当我们浏览着 ...

  2. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  3. Error in WCF client consuming Axis 2 web service with WS-Security UsernameToken PasswordDigest authentication scheme

    13down votefavorite 6 I have a WCF client connecting to a Java based Axis2 web service (outside my c ...

  4. 项目中使用WCF替换asmx Web service总结

    以前项目解决方案中,用http协议的asmx Web service作服务器数据访问入口,在SoapHeader中写入用户名和加盐密码进行身份认证. http asmx服务是明文传输,传输过程中数据很 ...

  5. UDP编程中client和server中使用recvfrom和sendto的区别

    client中:      sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&saddr,len);      recvfrom(sfd,buf ...

  6. 利用iOS中Safari浏览器创建伪Web App

    在safari浏览器里有一个“添加到主屏幕”选项,我们可以用来创建伪Web App,下面来了解一下iOS中Safari的私有属性 第一步设置Web App的主屏幕图标: 有两种属性值apple-tou ...

  7. iOS中基于 Socket 的 C/S 结构网络通信(中)

    结合上一篇的知识.接下来将介绍基于 TCP 协议的 Socket  编程.因为 Socket 须要有client和服务端,那么如今实现的是关于服务端的简单程序.服务端採用的是CFStream 类来实现 ...

  8. 微软BI 之SSIS 系列 - 在 SSIS 中使用 Web Service 以及 XML 解析

    开篇介绍 Web Service 的用途非常广几乎无处不在,像各大门户网站上的天气预报使用到的第三方 Web Service API,像手机客户端和服务器端的交互等都可以通过事先设计好的 Web Se ...

  9. Visual Studio 2010中创建ASP.Net Web Service

    转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...

随机推荐

  1. Android开发人员必知的开发资源

    developer.android.com 官方开发人员网站推荐资源 在动手编写第一个 Android 应用之前,用心读一读 Android Design 章节.尤其是以下的这些文章: Devices ...

  2. HDU 4704 Sum (费马定理+快速幂)

    Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Subm ...

  3. Codeforces 461B - Appleman and Tree 树状DP

    一棵树上有K个黑色节点,剩余节点都为白色,将其划分成K个子树,使得每棵树上都仅仅有1个黑色节点,共同拥有多少种划分方案. 个人感觉这题比較难. 如果dp(i,0..1)代表的是以i为根节点的子树种有0 ...

  4. A Game of Thrones(9) - Tyrion

    Somewhere in the great stone maze(迷宫:迷惑) of Winterfell, a wolf howled. The sound hung over the castl ...

  5. URAL1523(dp+树状数组)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=41224#problem/B 分析:可以设dp[i][j]表示以i结尾长度为j的 ...

  6. Music Studio项目心得--JNI实现C++调用JAVA

    这个项目是我參加内蒙古挑战杯的比赛项目,因为时间关系,我没时间实现OpenOMR开源项目由JAVA全然向C++的转换,经过我半个多月的尝试,我将OpenOMR中的1/3的代码改写成C++,只是非常快我 ...

  7. 备份恢复与CRM集成的sharepoint站点

    在部署CRM与Sharepoint2010集成文档管理之后,一直担心如果需要在新服务器上重新部署CRM, 那么之前与CRM集成的Sharepoint2010文档内容,是否可以重新正确映射到相应的文档位 ...

  8. ElasticSearch+Kibana 索引操作

    ElasticSearch+Kibana 索引操作 一 前言 ElasticiSearch 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引 ...

  9. windows之实现3D立体效果的三种方法

    第一种:快捷键:win+tab 另外一种:cmd输入rundll32.exe dwmapi #105 第三种:使用软件bumptop

  10. 有关信息ACM/ICPC竞争环境GCC/G++叠插件研究记录的扩展

    0.起因 有时.DFS总是比BFS受人喜爱--毕竟DFS简单粗暴,更,而有些东西BFS不要启动,DFS它似乎是一个可行的选择-- 但是有一个问题,DFS默认直接写入到系统堆栈.系统堆栈和足够浅,此时O ...