1、常用的类
     
NSURL:请求地址
NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有:
     一个NSURL对象
     请求方法、请求头、请求体
     请求超时
     …...
NSMutableURLRequest:NSURLRequest的子类
 
NSURLConnection
     负责发送请求,建立客户端和服务器的连接。
     发送数据给服务器,并收集来自服务器的响应数据。
 
 
 
 
2、NSURLConnection发送请求,常见的发送请求(默认都是GET请求)方式(都是类方法哦)有以下几种:
 
 2-1.第一种GET请求方法:直接通过同步或异步请求(一般都是使用不会堵塞的异步请求)
  • 同步请求
+ (NSData*)sendSynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse**)response error:(NSError**)error;
 
 
  • 异步请求
+ (NSData*)sendASynchronousRequest:(NSURLRequest*)request returningResponse:(NSURLResponse**)response error:(NSError**)error;
 
 
 2-2.第二种GET请求方法:使用NSURLConnectDataDelegate协议中的代理方法 (默认都是GET请求)
 <代理方法内部其实是异步请求,所以不会堵塞>
  • 开始接收服务器的响应时调用
- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response;
  • 接收到服务器返回的数据时调用(服务器返回的数据比较大时会调用多次)
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data;
  • 服务器返回的数据完全接收完毕后调用
- (void)connectionDidFinishLoading:(NSURLConnection*)connection;
  • 请求出错时调用(比如请求超时)
- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error;
 
总结:
     连接(connection)开始接收响应,那么最后面的参数有response(响应)。
     连接(connection)接收到数据,那么最后面的参数有data(数据)。
     连接(connection)接收完毕(DidFinishLoading),那么最后面没有参数了。
     连接(connection)请求错误,那么最后面的参数就是error(错误)。
其中第三种方法需要调用start方法,前两种方法不需要。
 
3、NSConnection发送POST请求,使用NSMutableURLRequest
NSMutableURLRequest是URLRequest的子类,常用的方法都是设置“set”(只要敲出set就能导出相关方法)相关的方法:
 
  • 设置请求超时等待时间(超过这个时间就算超时,请求失败)
-(void)setTimeoutInterval:(NSTimeInterval)seconds;
 
 
  • 设置请求方法(比如GET和POST)
-(void)setHTTPMethod:(NSString *)method;
 
  • 设置请求体
-(void)setHTTPBody:(NSData *)data;
 
  • 设置请求头
-(void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;
 
 
因为NSMutableURLRequest是Mutable的,所以可以重新设置请求方法,可以将之前默认GET方法设置为POST请求。
 如果服务器端需要接收客户端信息,那么可能就需要下面的setValue forHTTPHeaderField方法。
 
额外积累:
 
interval 英 'ɪntəv(ə)l  美 'ɪntɚvl  n. 间隔;间距;幕间休息

iOS开发网络篇—NSURLConnection基本使用(二)的更多相关文章

  1. iOS开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  2. iOS开发网络篇--NSURLConnection

    S简介 NSURLConnection: 作用: 1.负责发送请求,建立客户端和服务器的连接发送数据给服务器 2.并收集来自服务器的响应数据 步骤: 1.创建一个NSURL对象,设置请求路径 2.传入 ...

  3. iOS开发网络篇—NSURLConnection基本使用(一)

      一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法.请求头.请求体.. ...

  4. swift开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  5. iOS开发网络篇—数据缓存

      iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...

  6. iOS开发网络篇—HTTP协议

    iOS开发网络篇—HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

  7. iOS开发网络篇—发送json数据给服务器以及多值参数

    iOS开发网络篇—发送json数据给服务器以及多值参数 一.发送JSON数据给服务器 发送JSON数据给服务器的步骤: (1)一定要使用POST请求 (2)设置请求头 (3)设置JSON数据为请求体 ...

  8. iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

    iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConn ...

  9. 02.iOS开发网络篇—HTTP协议

    iOS开发网络篇—HTTP协议 说明:apache tomcat服务器必须占用8080端口 一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) ...

随机推荐

  1. 如何编写Angular指令

    [20140917]Angular:如何编写一个指令 *:first-child { margin-top: 0 !important; } body>*:last-child { margin ...

  2. html5 自定义数据属性 ,也就是 data-* 自定义属性---笔记。

    html5  自定义数据属性 ,也就是 data-* 自定义属性.  例如 <div data-last-value="43" data-hidden="true& ...

  3. MySQL工具汇总

    本博客已经迁移至:http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文请点击:http://cenalulu.github.io/mysql/mysql-tools-lis ...

  4. Unity3D 敌人AI 和 动画( Animator )系统的实例讲解

    在这个实例中,我们要做一些敌人AI的简单实现,其中自动跟随和动画是重点,我们要达到的目标如下: 1.敌人能够自动跟随主角 2.敌人模型一共有四个动作:Idle(空闲) Run(奔跑) Attack(攻 ...

  5. 探索jdk8之ConcurrentHashMap 的实现机制

    在介绍ConcurrentHashMap源码之前,很有必要复习下java并发编程中的一些基础知识,比如内存模型等. 存储模型 并发编程中的三个概念 1.原子性 2.可见性 3.重排序 对HashMap ...

  6. ASP.NET HTTP模拟提交通用类 GET POST

     用法: WebRequestSugar ws = new WebRequestSugar(); //可选参数 //ws.SetAccept //ws.SetContentType //ws.SetC ...

  7. .Net魔法堂:史上最全的ActiveX开发教程——自动更新、卸载篇

    一.前言 B/S模式的特点之一,客户端版本升级相对简单.快捷,适合产品的快速迭代.而ActiveX组件的自动更新同样也继承了这一优点.下面我们一起来了解吧! 二.二话不说更新ActiveX 1. 设置 ...

  8. Javascript刷新页面的八种方法

    /** * Javascript刷新页面的八种方法 * 说明一下,jQuery没有发现刷新页面的方法. */ 1 history.go(0) 2 location.reload() 3 locatio ...

  9. 关于 CommonJS AMD CMD UMD 规范的差异总结

    一.CommonJS 主要是用于服务器端的规范,比如目前的nodeJS. 根据CommonJS规范,一个单独的文件就是一个模块.每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函 ...

  10. ajax 跨域 headers JavaScript ajax 跨域请求 +设置headers 实践

    解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 此处手札 供后人参 ...