网络编程基础

移动应用一般由用户界面、用户体验、动态数据构成。
- 用户界面由UI设计
- 用户体验由多线程来完成
- 动态数据由网络编程来实现

在网络编程中主要有这么两个角色

  • 客户端:移动应用
  • 服务器端:为客户端提供服务、数据和资源的机器

步骤:
1.客户端向服务器发送请求,目的是索要资源
2.服务器会从数据库中寻找资源
3.服务器对客户端的请求进行响应,返回其所需资源

服务器

按照软件开发阶段,分为两种

远程服务器
  • 别名:外网服务器、正式服务器
  • 使用阶段:应用上线后使用的服务器
  • 使用人群:所有用户
  • 速度:取决于服务器性能和用户网速
本地服务器
  • 别名:内网服务器、测试服务器
  • 使用阶段:应用处于开发、测试阶段
  • 使用人群:开发人员、测试人员
  • 速度:由于是局域网、速度飞快,有助于提高开发测试效率
HTTP协议

以前一直搞不懂这个协议是什么鬼,感觉是一种高深莫测的东西。其实,协议就是用于规定两个事物之间沟通方式的一些规则。这个HTTP协议就是规定了客户端和服务器端之间的数据传输格式。

HTTP协议的特点
  • 简单快速
    因为http协议简单,所以http服务器程序规模小,通信速度很快
  • 灵活
    http协议允许传输任意类型的数据
  • http0.9和1.0使用非持续连接
    每次连接之处里一个请求,服务器对客户端作出响应之后就断开连接,节省传输时间
iOS中发送http请求的方法
  • NSURLConnection:用法简单,最古老经典的方案
  • NSURLSession:iOS7新出的技术,功能比NSURLConnection更强大
  • CFNetwork:前两种当法的底层实现,纯C语言的

第三方框架

  • ASIHttpRequest:功能非常强大,但是已经不再更新了
  • AFNetworking:简单易用,提供了基本的常用功能,维护和使用的人较多
常用类
  • NSURL:请求地址
  • NSURLRequest:代表一个请求,包含一个NSURL对象、请求头、请求体、请求超时
  • NSURLConnection 负责发送请求,建立客户端与服务器端的连接,发送NSURLRequest的数据给服务器并收集来自服务器的响应数据
同步和异步请求
同步请求

[NSURLConnection sendSynchronousRequest:returningResponse:error:]在当前线程中发送请求,所以不要在主线程中使用此方法,该函数返回NSData对象,也就是说只有等到返回了数据,才结束这个方法,否则就一直卡在这个方法上

异步请求
block回调

+ (void)sendAsynchronousRequest:(NSURLRequest )request queue:(NSOperationQueue )queue completionHandler:(void (^)(NSURLResponse * response, NSData *data,NSError *connectionError)) handler;
会在请求完毕时自动调用。这个地方需要注意一点,发送该请求在子线程中执行,如果要在block回调中更新UI,那么需要将queue参数设置为主队列,这个时候不要弄混了,这个主队列是说明block里面的内容在主队列中执行,但是发送请求仍在子线程执行。

#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值