zoukankan      html  css  js  c++  java
  • iOS开发网络篇—NSURLConnection基本使用(二)

    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开发 代码 或 <Home+Power>截屏
    正弦水波纹波动画
    CAGradientLayer + UIBezierPath 为视图画渐变背景色
    字符串(String)和 字符(Character)
    Python+selenium爬取智联招聘的职位信息
    用Python写一个随机密码生成器
    golang文件处理函数openfile与linux系统的文件函数的耦合
    单向列表的实现代码,以及注释解释笔记
    CLion中出现错误add_dependencies called with incorrect number of arguments解决
    c语言指针的简单实例
  • 原文地址:https://www.cnblogs.com/goodboy-heyang/p/4714236.html
Copyright © 2011-2022 走看看