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

     当我们浏览着关注或者好友的微博时。那些图片和数据不是凭空出现的,而是通过你的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”)。

最新文章

  1. Node.js之路【第三篇】NodeJS异步实现
  2. 用R去做文本处理
  3. Win7精简成功后的总结
  4. #284 div.2 C.Crazy Town
  5. c++11 auto_ptr介绍
  6. flash与php 交互(as传参给php)
  7. oracle execute immediate
  8. Json 查看Json的插件
  9. 使用 Nexus Repository Manager 搭建私有docker仓库
  10. MySQL 设置root密码报错:mysqladmin: connect to server at &#39;localhost&#39; failed
  11. Thread.join方法的解析(转)
  12. (转)在WinForm中选择本地文件
  13. 使用GenericServlet实例
  14. C++中的浮点数运算的误差测试分析
  15. NO.3day 网络基础
  16. linux下使用speedtest测速
  17. Drupal模块的安装方法
  18. LMAX Disruptor 原理
  19. codeforces 295C Greg and Friends(BFS+DP)
  20. Cocos2d-X中的菜单

热门文章

  1. js常用特效——选项卡效果
  2. 05006_Linux的jdk、mysql、tomcat安装
  3. COGS——T 1168. 机器调度
  4. POJ 3696
  5. MongoDB创建\更新\删除文档操作
  6. 自己主动化測试程序之中的一个自己定义键盘的模拟測试程序(C语言)
  7. HDU 5305 Friends (搜索+剪枝) 2015多校联合第二场
  8. 第十七章_Web注解
  9. Java 8 Concurrency Tutorial--转
  10. EL与JSTL学习(二)——JSTL技术