NSURLRequest Class Reference

NSURLRequest Class Reference

概述


NSURLRequest 对象代表独立于协议的URL加载请求。

NSURLRequest 封装了加载请求的两个基本元素:  URL,缓存策略。

NSURLRequest 可以通过添加 category 来支持其他的协议,使用  NSURLProtocol  的  propertyForKey:inRequest: 方法和 setProperty:forKey:inRequest: 方法,可以访问属性对象的协议值。

NSURLRequest 对应的可变类为    NSMutableURLRequest


作用


创建请求

获取请求属性

获取HTTP请求属性

允许使用蜂窝数据

支持安全编码


类方法


requestWithURL:

创建并返回使用 默认缓存策略 + 默认超时时间 + 指定URL 的请求。
+ (id)requestWithURL:(NSURL *)theURL
  • theURL: 请求的URL
  • 返回值: 新建的URL请求。
默认的缓存策略是  NSURLRequestUseProtocolCachePolicy  。
默认的超时时间是 60s。


requestWithURL:cachePolicy:timeoutInterval:

创建并返回使用 指定 缓存策略 + 指定超时时间 + 指定URL 的请求。
+ (id)requestWithURL:(NSURL *)theURL
         cachePolicy:(NSURLRequestCachePolicy)cachePolicy
     timeoutInterval:(NSTimeInterval)timeoutInterval
  • theURL: 请求的URL
  • cachePolicy: 请求的缓存策略
  • timeoutInterval: 请求的超时时间,以秒为单位。
  • 返回值: 新建的URL请求

实例方法


allHTTPHeaderFields

- (NSDictionary *)allHTTPHeaderFields
  • 返回值: 包含HTTP头所有字段的字典

allowsCellularAccess

- (BOOL)allowsCellularAccess
  • 返回值: YES蜂窝数据可用,NO蜂窝数据不可用。

cachePolicy

- (NSURLRequestCachePolicy)cachePolicy
  • 返回值: 该请求使用的缓存策略。

HTTPBody

- (NSData *)HTTPBody
  • 返回值: 请求体。

HTTPBodyStream

- (NSInputStream *)HTTPBodyStream
  • 返回值: 请求的输入流。如果未设置,则返回nil。这个流只能用来检验,其他操作都是不可靠的。
一个请求要么设置了请求体(HTTP Body),要么设置了输入流(HTTP Body Stream),只能设置一个。
输入流在复制NSURLRequest对象时被保留,但是用NSCoding协议归档的时候将丢失。


HTTPMethod

- (NSString *)HTTPMethod
  • 返回值:请求方法。 默认是“GET”
HEAD - 只传递头信息,没有请求体,也没有响应体。
GET - 查询资源
PUT - 新增资源
POST - 更新资源
DELETE - 删除资源


HTTPShouldHandleCookies

- (BOOL)HTTPShouldHandleCookies
  • 返回值: YES 使用默认cookie处理,NO不使用。
默认值为YES。

HTTPShouldUsePipelining

返回在接到上一个请求的响应之前,是否需要传输数据。
- (BOOL)HTTPShouldUsePipelining
  • 返回值: YES 传输,NO 不传输。

initWithURL:

初始化使用 默认缓存策略 + 默认超时时间 + 指定URL 的请求。
- (id)initWithURL:(NSURL *)theURL
  • theURL: 请求的URL
  • 返回值: 新建的URL请求。
默认的缓存策略是  NSURLRequestUseProtocolCachePolicy  。
默认的超时时间是 60s。


initWithURL:cachePolicy:timeoutInterval:

初始化使用 指定 缓存策略 + 指定超时时间 + 指定URL 的请求。
- (id)initWithURL:(NSURL *)theURL
      cachePolicy:(NSURLRequestCachePolicy)cachePolicy
  timeoutInterval:(NSTimeInterval)timeoutInterval
  • theURL: 请求的URL
  • cachePolicy: 请求的缓存策略
  • timeoutInterval: 请求的超时时间,以秒为单位。
  • 返回值: 新建的URL请求

mainDocumentURL

- (NSURL *)mainDocumentURL
  • 返回值: 请求对应URL的主文档。

networkServiceType

- (NSURLRequestNetworkServiceType)networkServiceType
  • 返回值: 网络服务类型。
网络服务类型给操作系统提示底层通信的作用。这个提示有助于系统优化通信,确定唤醒蜂窝数据或者WIFI的速度。调节不同的参数,可以平衡电池、性能以及其他因素。
比如,进行非用户请求的下载时应该使用  NSURLNetworkServiceTypeBackground。 比如,在后台提前加载数据,这样等用户需要看时就不需要加载了。

supportsSecureCoding

表明 NSURLRequest 是否实现了  NSSecureCoding 协议。
- (BOOL)supportsSecureCoding

timeoutInterval

- (NSTimeInterval)timeoutInterval
  • 返回值: 请求的超时时间,单位秒。

URL

- (NSURL *)URL


valueForHTTPHeaderField:

- (NSString *)valueForHTTPHeaderField:(NSString *)field
  • field: 头字段的名字。 忽略大小写。
  • 返回值: 头字段的值,如果没有该字段,则返回nil。

常量


NSURLRequestCachePolicy

enum
{
    NSURLRequestUseProtocolCachePolicy = 0,

    NSURLRequestReloadIgnoringLocalCacheData = 1,
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,

    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,

    NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};
typedef NSUInteger NSURLRequestCachePolicy;

 
  

NSURLRequestNetworkServiceType

enum
{
   NSURLNetworkServiceTypeDefault    = 0,
   NSURLNetworkServiceTypeVoIP       = 1,
   NSURLNetworkServiceTypeVideo      = 2,
   NSURLNetworkServiceTypeBackground = 3,
   NSURLNetworkServiceTypeVoice      = 4
};
typedef NSUInteger NSURLRequestNetworkServiceType;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值