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:123456@www.baidu.com/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)

 

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

  1. python高级之网络编程

    python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...

  2. 第六篇:python高级之网络编程

    python高级之网络编程   python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及 ...

  3. 网络编程TCP协议-聊天室

    网络编程TCP协议-聊天室(客户端与服务端的交互); <span style="font-size:18px;">1.客户端发数据到服务端.</span> ...

  4. 网络编程——TCP协议、UDP协议、socket套接字、粘包问题以及解决方法

    网络编程--TCP协议.UDP协议.socket套接字.粘包问题以及解决方法 TCP协议(流式协议) ​ 当应用程序想通过TCP协议实现远程通信时,彼此之间必须先建立双向通信通道,基于该双向通道实现数 ...

  5. Java 基础高级2 网络编程

    1.协议的概念:通信双方事先约定好的通信规则 2七层网络通信协议:应用成,表示层,会话层,传输层,网络层,数据链路层 3.TCP/IP协议:点对点通信,三层握手,安全有保证 4.UDP协议;广播协议, ...

  6. [转]C#网络编程(订立协议和发送文件) - Part.4

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part4.aspx 源码下载:http://www.trac ...

  7. python 网络编程 -- Tcp协议

    Socket是网络编程的一个抽象概念.通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 客户端 大多数连接都是可靠 ...

  8. java网络编程+通讯协议的理解

    参考: http://blog.csdn.net/sunyc1990/article/details/50773014 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很 ...

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

    作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利, ...

随机推荐

  1. a mystrious max subquence sum

    #include<cstdio>#include<cstring>const int maxn=100005;int buf[maxn];int main(){ freopen ...

  2. 自适应中overflow的作用

    最近在做东西的时候发现overflow还有这样的妙处:可以实现自适应,之前没加overflow实现起来是有点问题的 代码如下: <!DOCTYPE html><html> &l ...

  3. [转载]:Endnote 自定义style文件的默认位置

    一般而言,安裝完EndNote 後,預設Output Styles.Filters.Connection Files 的電腦存放路徑如下–   C:\Program Files\EndNote X4 ...

  4. 解决error C2011: 'fd_set' : 'struct' type redefinition的方法

    http://www.cnblogs.com/ark-zhang/archive/2013/06/19/3144383.html   首先说明这个问题由于重复定义引起的编译错误. 先说明解决方法,然后 ...

  5. leetcode 19

    最开始用一般的方法,首先遍历链表求出长度,进而求出需要删除节点的位置,最后进行节点的删除. 代码如下: /** * Definition for singly-linked list. * struc ...

  6. linux 下wifi 功能的实现

    一.嵌入式linux四件套配置 1.网卡选型的依据: a.网卡不能乱选,否则没戏.网卡的依据是,kernel的menuconfig -> device drivers -> network ...

  7. SAP物料价格评估与成本计算体系

    物料评估目的 核算物料领用与消耗的价值,使生产成本与产品销售成本有统一计价标准. 核算企业库存价值. 物料价格方法 移动平均价,标准价,实际价,计划价. @移动平均价: 每次物料移动后重新计算平均价, ...

  8. Android开发中Ant命令编译和APK签名的一些心得

    本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...

  9. Aspose插件

    Eclipse安装地址: http://apps.aspose.com/marketplace/eclipse/asposewizardrepo

  10. 网络流量监控工具iftop

    #-------------------网络流量监控工具iftop---------------##! /bin/sh #1.首先安装依赖关系包yum install flex byacc libpc ...