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

     当我们浏览着关注或者好友的微博时。那些图片和数据不是凭空出现的,而是通过你的client向server请求后由新浪微博的server返回本地所获得,通过数据的解析就行在client上进行显示,甚至是操作。而这些,就是我们通常所说的 Web Service。

Web Service
技术是一种通过 Web 协议提供服务,保证不同平台的应用服务能够互操作,为client应用提供不同的服务。眼下主流的 Web Service 技术有三种:REST、SOAP 和 XML-RPC。如今主要介绍的是 REST Web Service。

     REST 被翻译为“表征状态转移”,“表征”是client看到的页面,页面的跳转就是状态的转移,client通过请求 URI 获得要显示的页面。

REST 一般是基于 HTTP、URI 和 XML 以及 HTML 等这些现有的协议和标准。

     REST Web Service 是一个使用 HTTP 并遵循 REST 原则的 Web Service。请求 Web Service 使用 URI 定位资源。与 Web Service 的数据交换格式使用JSON 和 XML 等很灵活。Web Service 所支持的 HTTP 请求方法,包含 POST、GET、PUT或DELETE 等。

     同步 GET 方法实现的请求:

上一篇关于 JSON 是属于本地解析。如今是从server请求回返回数据进行解析,接下来看一下 Web Service 请求的主要方法。

-(void)startRequest
{ NSString *strURL = [[NSString alloc] initWithFormat:
@"请求的server地址"]; NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]]; NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSLog(@"请求完毕...");
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
[self reloadView:resDict];
}

initWithFormat:方法指定请求的 URL ,这是 URL 的所指向的 Web Service。下一行代码是使用上面的 strURL 字符串创建 NSURL 对象,參数是[strURL URLEncodedString],strURL 字符串又调用了 URLEncodedString 方法将字符串转换为 URL 字符串,在
Internet 传输的时候 URL 中不能有中文等特殊字符出现。

使用该方法就是把这些字符转换为有百分号的 URL 编码(“<”符号的 URL 编码是 “%3C”)。

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

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

    在实际的应用开发过程中,同步请求的用户体验并非非常好:我们都知道.Apple是非常重视用户体验的.这一点也成为了行业的标杆,没实用户哪里来的好产品.所以用户体验是极其重要的.貌似废话有点多.接下来进入 ...

  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. WinServer-win7通过powershell操作AD-从接触到放弃

    额....我想在win7上练习AD的powershell命令 看了这篇帖子,他们说在WIN7上没法导入powershell的模块,只能在SERVER 上弄 https://social.technet ...

  2. OSGI项目中获取文件路径

    假设想依据给定的文件名创建一个File实例,你可能会这么写: File file = new File(当前类.class.getResource("config").toURI( ...

  3. hdu5033 Building 单调队列

    // hdu5033 Building 单调队列 // // 题目大意: // // n栋大楼,有一个高度h和位置x.如今有一个人高度为0,有q个询问 // 每一个询问有一个位置x,求在位置x能看到天 ...

  4. poj--3984--迷宫问题(bfs+路径记录)

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status D ...

  5. CentOS Linux 加硬盘,分区和设置自动挂载

    sda 表示第1块SCSI硬盘hda 表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上)scd0 表示第1个USB光驱当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.ccis ...

  6. xBIM 基础16 IFC的空间层次结构

    系列目录    [已更新最新开发文章,点击查看详细]  本篇介绍如何从文件中检索空间结构.IFC中的空间结构表示层次结构的嵌套结构,表示项目,站点,建筑物,楼层和空间.如果您查看IFC文档, 您会发现 ...

  7. Windows 10 秋季更新错误

    uefi 启动丢失修复 bcdboot c:\windows /s y: /f uefi /l zh-cn 0x80240034 你尝试安装的内部版本是有签名的外部测试版.若要继续安装,请启用外部测试 ...

  8. 优动漫PAINT-绘制透明布料教程

    原是一篇日语教程,觉得挺不错的,就劳烦会日语的朋友帮忙翻译了,特此分享!希望可以帮助到大家在绘画上的学习!原教程转载优动漫官网. 作者:JaneMere 相关资讯还可以关注www.dongmansof ...

  9. C语言基础 (2) linux命令

    01.课程回顾 链接 ln 1.txt aaa.txt  硬链接 (两个相互独立 删除一个另外一个还在) ln -s 1.txt aaa.txt软连接 (后面的是快捷方式) 硬链接只能是文件,软连接可 ...

  10. js Date() 时间函数处理 关于 toLocaleDateString()

    toLocaleDateString()方法的真正含义为「根据本地时间把Date对象的日期部分转换为字符串」,这意味着:在不同的浏览器或者服务器中,我们可能得到不同的字符串. 例如,将 Chrome ...