iOS 中client和server的 Web Service 网络通信 (2)
在实际的应用开发过程中,同步请求的用户体验并非非常好;我们都知道。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)的更多相关文章
- iOS 中client和server的 Web Service 网络通信 (1)
当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的. 当我们浏览着 ...
- 用JQuery中的Ajax方法获取web service等后台程序中的方法
用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...
- 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 ...
- 项目中使用WCF替换asmx Web service总结
以前项目解决方案中,用http协议的asmx Web service作服务器数据访问入口,在SoapHeader中写入用户名和加盐密码进行身份认证. http asmx服务是明文传输,传输过程中数据很 ...
- UDP编程中client和server中使用recvfrom和sendto的区别
client中: sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&saddr,len); recvfrom(sfd,buf ...
- 利用iOS中Safari浏览器创建伪Web App
在safari浏览器里有一个“添加到主屏幕”选项,我们可以用来创建伪Web App,下面来了解一下iOS中Safari的私有属性 第一步设置Web App的主屏幕图标: 有两种属性值apple-tou ...
- iOS中基于 Socket 的 C/S 结构网络通信(中)
结合上一篇的知识.接下来将介绍基于 TCP 协议的 Socket 编程.因为 Socket 须要有client和服务端,那么如今实现的是关于服务端的简单程序.服务端採用的是CFStream 类来实现 ...
- 微软BI 之SSIS 系列 - 在 SSIS 中使用 Web Service 以及 XML 解析
开篇介绍 Web Service 的用途非常广几乎无处不在,像各大门户网站上的天气预报使用到的第三方 Web Service API,像手机客户端和服务器端的交互等都可以通过事先设计好的 Web Se ...
- Visual Studio 2010中创建ASP.Net Web Service
转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...
随机推荐
- 一种单片机支持WiFi的应用——SimpleWiFi在单片机中的应用
一种单片机支持WiFi的应用——SimpleWiFi在单片机中的应用 先上图: 现在的智能控制都是基于微控制器,随着智能的手持终端的普及,基于智能终端的控制就会越来越普遍. WIFI便是其中的一种.W ...
- 开发测试时给 Kafka 发消息的 UI 发送器――Mikasa
开发测试时给 Kafka 发消息的 UI 发送器――Mikasa 说来话长,自从入了花瓣,整个人就掉进连环坑了. 后端元数据采集是用 Storm 来走拓扑流程的,又因为 @Zola 不是很喜欢 Jav ...
- hdu 4888 Redraw Beautiful Drawings 最大流
好难好难,将行列当成X和Y,源汇点连接各自的X,Y集,容量为行列的和,相当于从源点流向每一行,然后分配流量给每一列,最后流入汇点,这样执意要推断最后是否满流,就知道有没有解,而解就是每一行流向每一列多 ...
- 关于 typedef & typedef struct & typedef union理解 --写给不长脑子的我
来源: http://zhidao.baidu.com/link?url=qxzkx5gaoCfnHnygYdzaLEWkC45JqNYYUk42eHHjB0yB3ZMgHv6lGjnq3CRfgQw ...
- hdu1330(递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1330 分析:经典问题,n 块相同的木板重叠,最多能够伸出桌面多远 对于n张卡片的最佳摆法,我们只需要在 ...
- 设计模式之十:观察者模式(Observer)
观察者模式: 在对象之间定义了一种一对多的依赖关系.当一个对象改变它的状态时,全部依赖它的对象会自己主动接收通知并更新自己的状态. Define a one-to-many dependency be ...
- 获得树形json串
public class TreeNode { private long nodeId; private String nodeName; private long fatherNod ...
- SVN冲突解决详解
在: http://blog.csdn.net/windone0109/article/details/4857044
- word2vec 中的数学原理具体解释(四)基于 Hierarchical Softmax 的模型
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注.因为 word2vec 的作者 Tomas M ...
- ECshop lib_base.php on line 1241 错误解决方法
ECSHOP做的一个网站,突然报这个错误,整个网站打不开,后来找了很久,终于找到这个方法,亲测可用 Notice: Undefinedvariable: data in D:\wwwroot\KISS ...