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 ...
随机推荐
- Just learn how to use the JNI
JNITestProject Just learn how to use the JNI Refer : 1. ant usage http://lmbj.net/blog/ant-build-and ...
- Android笔记二十七.Service组件入门(一).什么是Service?
转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.Service 1.Service简单介绍 Service为Android四大组件之中 ...
- Android大图片导致内存问题小结
在网上看了部分Android中OOM的问题,现在根据理解,做一下笔记. Android OOM 产生的几种原因 1. 程序中使用了太多自己创建的Bitmap. 这种情况通常是最好解决的. 因为你明白你 ...
- aix 下 实现goldengate 随os启动而自己主动启动的脚本
aix 下 实现goldengate 随os启动而自己主动启动的脚本: 1.用oracle用户建立/u01/info.txt,文件内容例如以下: sh date start mgr 2.chmod + ...
- ym——Android开发编码规范(自用)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境下J ...
- LaTeX中表格多行显示的最简单设置方法
这事实上是一个非常easy的问题,可是这两天发现我之前的解决方式太麻烦了.简介一下这样的最简单的方法: 之前设置多行显示的时候,用类似于以下这样的方法进行多行显示: \begin{table} \ne ...
- Spring——AOP配置时的jar包异常
首先:这不是SSH整合的,这是单独配置Spring AOP的一个小例子. 所需要的jar包:如图: 我在这里出现的两个问题: 1.没有导入asm的jar包. 所报的异常为: java.lang.Cla ...
- jQuery上传插件Uploadify 3.2在.NET下的详细例子
项目中要使用Uploadify 3.2来实现图片上传并生成缩略通的功能,特此记下来,以供各位参考! Uploadify下载地址:http://www.uploadify.com/download/ 下 ...
- POJ 3630 Phone List Trie题解
Trie的应用题目. 本题有两个难点了: 1 动态建立Trie会超时,须要静态建立数组,然后构造树 2 推断的时候注意两种情况: 1) Tire树有133,然后插入13333556的时候.2)插入顺序 ...
- 扩展WebBrowser控件,使其支持拖放文件
public partial class UserControl1 : WebBrowser { private const int WmDropfiles = 0x233; [DllImport(& ...