iOS网络编程之五——请求回执类NSURLResponse属性简介
一、NSURLResponse
/*
*/
- (instancetype)initWithURL:(NSURL *)URL MIMEType:(nullable NSString *)MIMEType expectedContentLength:(NSInteger)length textEncodingName:(nullable NSString *)name NS_DESIGNATED_INITIALIZER;
/*
服务的URL地址
*/
@property (nullable, readonly, copy) NSURL *URL;
/*
返回数据的数据类型(纯文本,视频,语音,超文本等)
*/
@property (nullable, readonly, copy) NSString *MIMEType;
/*
将要返回的数据的大小
*/
@property (readonly) long long expectedContentLength;
/*
编码的名称
*/
@property (nullable, readonly, copy) NSString *textEncodingName;
/*
获取服务器的文件的名称
*/
@property (nullable, readonly, copy) NSString *suggestedFilename;
二、NSHTTPURLResponse
NSHTTPURLResponse
继承NSURLResponse
。
对于HTTP
请求,请求回执会被封装为NSHTTPURLResponse
对象,其中除了有上面那些属性外,还有如下的扩展属性:
/*
返回的状态码,成功,失败,无效请求等,(200,404,400等)
*/
@property (readonly) NSInteger statusCode;
/*
请求头中所有的字段,key-value格式
*/
@property (readonly, copy) NSDictionary *allHeaderFields;
三、举个栗子
-
用途:
- 1、响应的状态码可以用来检测服务器对请求的出来情况。
- 2、响应的期望长度可以预计该资源的大小,计算进度。
- 3、响应头信息可以用于得到服务器返回的服务器信息及其它关于响应类容的信息、编码、缓存时间之类。
应用:
//查看http请求响应的状态码
NSLog(@"response status code:%d",[(NSHTTPURLResponse *)response statusCode]);
//查看http请求响应的资源大小
NSLog(@"response expect length:%lld", [(NSHTTPURLResponse *)response expectedContentLength]);
//查看http响应的所有头域
NSLog(@"response all headfield:%@",[(NSHTTPURLResponse *)response allHeaderFields]);