iOS UI高级之网络编程(HTTP协议)

HTTP协议的概念

HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型

了解C/S模式

Client(客户端)和Server(服务器)常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接受客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序

iOS实现网络编程

HTTP协议请求如何实现

网络请求地址对象NSURL的作用及用法

网络请求对象NSURLRequest、NSMutableURLRequest的作用和用法

网络链接对象NSURLConnenction的作用及用法

网路链接协议NSURLConnectionDataDelegate的作用及用法

网络请求数据信息NSURLResponse的作用及用法

网络连接中所用到的类

我们将在后面的学习过程中遇到五个关于网络连接的类分别是:NSURL, NSURLRequest, NSMutableURLRequest, NSURLResponse, NSError.

NSURL:这个类封装了一个网络路径。

NSURLRequest:我们将通过这个类设置一些网络的请求信息。

NSMutableURLRequest:这个类是NSURLRequest的子类,可以设置一些请求参数

NSURLResponse:这个类可以接受一些从服务器返回的信息

NSError:这个类包含了我们在网络请求中遇到的错误信息

NSURL

url,统一资源定位符,也称为网址,因特网上标准的资源网址

一个典型的url:http://lily:[email protected]/search?hl=en&source=hp&q=mysql&aq=f&oq=&aqi=g10#page

url的符语法: 协议://授权/路径?查询              注释:url中网址后面的路径服务器中的文件夹 ?后面跟的是参数,多个参数时通过&(and)链接

协议:ftp://(文本传输协议) http://(超文本传输协议)

https://(安全超文本传输协议) file://(本地文件协议)

URL的请求方式

网络请求方式有两种:GET 和 POST

两种方式的相同点是:

都能给服务器传输数据

两种请求方式的不同点是:

1、给服务器传输数据的方式:

  GCT:通过网址字符串

  POST:通过data

2、传输数据的大小:

  GET:网址字符串最多255字节

  POST:使用NSData,容量超过1G

3、安全性:

  GET:所有传输给服务器的数据,显示在网址里,类似于密码的明文输入,直接可见

  POST:数据被转成NSData(二进制数据),类似于密码的密文输入,无法直接读取

连接方式

同步连接:程序容易出现卡死现象

异步链接:等待数据返回

异步链接有两种实现方式:

  设置代理,接受数据

  实现block

同步连接

同步连接请求可以让你能够从因特网请求数据,一旦发送同步请求后,程序将停止用户交互,直至服务器返回数据完成才可进行下一步操作。

首先我们建立一个TableViewController视图控制器在方法viewDidLoad里面我们将将网址字符串转成NSURL对象,然后根据NSURL对象创建NSURLRequest请求对象,然后建立同步链接,再通过jeson解析信息

异步连接

同步连接会让程序出现“卡死”现象,导致用户交互不友好,而异步链接正好改变了这一弊端,异步连接不会阻塞主线程,而会建立一个新的线程来操作,因此用户在发送出异步请求后依然可以对UI进行操作,程序可以继续进行。

异步连接(代理)

设置NSURLConnection代理

实现相应的代理方法:开始响应接受数据、接收数据 、成功、失败

创建了URL,指定代理之后,代理中的相应方法实现如下:

异步连接(block)

 

时间: 2024-08-22 13:03:55

iOS UI高级之网络编程(HTTP协议)的相关文章

python高级之网络编程

python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说到网络通信,那就不得不说TCP/IP协议簇的OSI七层模型了,这个东西当初在学校都学烂了...(PS:毕竟本人是网络工程专业出身...) 简单介绍下七层模型从底层到上层的顺序:物理层(定义物理设备的各项标准),数据链路层(mac地址等其他东西的封装),网络层(IP包头的的封装),传输层(TCP/UD

C#网络编程(订立协议和发送文件)

C#网络编程(订立协议和发送文件) - Part.4 文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时,分别向服务端发送文件Client01.jpg.Client02.jpg.Client03.jpg:当我们输入R1.R2或R3时(R为Receive缩写),则分别从服务端接收文件Server01.jpg.Server02.jpg.Server03.

Java 网络编程 UDP协议

网络编程 TCP/IP协议:多台计算机网络连接的规则 包括:TCP协议.IP协议.UDP协议和其它协议的协议组 层次结构: 链路层:链路层是用于定义物理传输通道,通常是对某些网络连接设备的驱动协议,例如针对光纤.网线提供的驱动.硬件方面的 网络层:网络层是整个TCP/IP协议的核心,它主要用于将传输的数据进行分组,将分组数据发送到目标计算机或者网络. 传输层:主要使网络程序进行通信,在进行网络通信时,可以采用TCP协议,也可以采用UDP协议. 应用层:主要负责应用程序的协议,例如HTTP协议.F

iOS核心笔记——网络编程-HTTPS协议

1.HTTPS的基本使用: 1.HTTPS简单说明: ?了解:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版. ?重要:即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL. 它是一个URI scheme(抽象标识符体系),句法类同http:体系.用于安全的HTTP数据传输. ?重要:https:URL:表明它使用了HTTPS,

iOS网络编程解析协议二:XML数据传输解析

XML两种解析方式,一种是SAX,NSXMLParser是SAX方法解析,另一种是DOM(Document Object Model); 区别: SAX: 只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快 常应用于处理大量数据的XML,实现异构系统的数据访问,实现跨平台 从文档的开始通过每一节点移动,定位一个特定的节点 DOM: 不仅能读,还能修改,而且能够实现随机访问,缺点是解析速度慢,适合解析小型文档 一般应用与小型的配置XML,方便操作 为载入到内存的文档节点建立类型描述,呈

iOS网络编程解析协议三:JSON数据传输解析

作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中 作为一种轻量级的数据交换格式,JSON正在逐步取代XML,成为网络数据的通用格式 从iOS 5开始,使用NSJSONSerialization对JSON解析 其他常见的三种JSON解析第三方库:SBJso

网络编程02---HTTP协议

1.URL简介 1.客户端如何找到服务器 我们都知道网络中部署着各种各样的服务器,比如腾讯的服务器.百度的服务器.那么问题来了,客户端如何找到想要连接的服务器 ? 答案:客户端通过URL找到想要连接的服务器 2.什么是URL URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址,互联网上的每个资源都有一个唯一的URL URL的基本格式 = 协议://主机地址/路径 协议:不同的协议,代表着不同的资源查

iOS开发之AFNetworking网络编程

众所周知,苹果搞的一套框架NSContention发送请求与接收请求的方式十分繁琐.操作起来很不方便.不仅要做区分各种请求设置各种不同的参数,而且还要经常在多线程里操作,同时还要对请求与返回的数据做各种序列化的操作,同时还要考虑请求数据的安全等一堆问题. 转载请注明出处:http://blog.csdn.net/xn4545945  一.早前的几个网络框架 1.ASI框架: HTTP终结者.很牛, 但是有BUG, 已经停止更新. 2.MKNetworkKit (印度人写的). 3.AFN一直还在

Java网络编程-HTTP协议

HTTP协议的定义 这篇文章暂时不研究HTTP底层的TCP/IP的握手和挥手过程,只从表面的交互流程分析HTTP协议. HTTP英文全称是Hypertext Transfer Protpcol,也就是超文本传输协议.HTTP是一个标准,定义了Web客户端如何与服务器对话以及数据如何从服务器传回到客户端.在日常开发和使用过程中,HTTP经常被认为是一种用于传输HTML文件和文件中内嵌的图片的协议或者手段,实际上HTTP是一种通用的网络数据传输格式,它的传输内容不仅仅局限于HTML文件或者图片,也可