国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

總結(jié)iOS之HTTP請求回執(zhí)類的用法

2020-02-19 15:48:07
字體:
供稿:網(wǎng)友

HTTP協(xié)議是網(wǎng)絡(luò)開發(fā)中最常用的協(xié)議,無論是移動客戶端還是PC端,HTTP協(xié)議都是經(jīng)常被用來訪問網(wǎng)絡(luò)資源的,下面武林技術(shù)頻道為大家整理了總結(jié)iOS之HTTP請求回執(zhí)類的用法,一起來看看吧!

請求類NSURLRequest
NSURLRequest類中常用方法和屬性總結(jié):

//通過類方法創(chuàng)建默認的請求對象
/*
通過這種方式創(chuàng)建的請求對象 默認使用NSURLRequestUseProtocolCachePolicy緩存邏輯 默認請求超時時限為60s
*/
+ (instancetype)requestWithURL:(NSURL *)URL;
//返回一個BOOL值 用于判斷是否支持安全編碼
+ (BOOL)supportsSecureCoding;
//請求對象的初始化方法 創(chuàng)建時設(shè)置緩存邏輯和超時時限
+ (instancetype)requestWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;
//init方法進行對象的創(chuàng)建 默認使用NSURLRequestUseProtocolCachePolicy緩存邏輯 默認請求超時時限為60s
- (instancetype)initWithURL:(NSURL *)URL;
//init方法進行對象的創(chuàng)建
- (instancetype)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;
//只讀屬性 獲取請求對象的URL
@property (nullable, readonly, copy) NSURL *URL;
//只讀屬性 緩存策略枚舉
/*
NSURLRequestCachePolicy枚舉如下:
typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy)
{
??? //默認的緩存協(xié)議
??? NSURLRequestUseProtocolCachePolicy = 0,
??? //無論有無本地緩存數(shù)據(jù) 都進行從新請求
??? NSURLRequestReloadIgnoringLocalCacheData = 1,
??? //忽略本地和遠程的緩存數(shù)據(jù) 未實現(xiàn)的策略
??? NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4,
??? //無論有無緩存數(shù)據(jù) 都進行從新請求
??? NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
??? //先檢查緩存 如果沒有緩存再進行請求
??? NSURLRequestReturnCacheDataElseLoad = 2,
??? //類似離線模式,只讀緩存 無論有無緩存都不進行請求
??? NSURLRequestReturnCacheDataDontLoad = 3,
??? //未實現(xiàn)的策略
??? NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented
};
*/
@property (readonly) NSURLRequestCachePolicy cachePolicy;
//只讀屬性 獲取請求的超時時限
@property (readonly) NSTimeInterval timeoutInterval;
//主文檔地址 這個地址用來存放緩存
@property (nullable, readonly, copy) NSURL *mainDocumentURL;
//獲取網(wǎng)絡(luò)請求的服務類型 枚舉如下
/*
typedef NS_ENUM(NSUInteger, NSURLRequestNetworkServiceType)
{
??? NSURLNetworkServiceTypeDefault = 0,?// Standard internet traffic
??? NSURLNetworkServiceTypeVoIP = 1,?// Voice over IP control traffic
??? NSURLNetworkServiceTypeVideo = 2,?// Video traffic
??? NSURLNetworkServiceTypeBackground = 3, // Background traffic
??? NSURLNetworkServiceTypeVoice = 4??? // Voice data
};
*/
@property (readonly) NSURLRequestNetworkServiceType networkServiceType;
//獲取是否允許使用服務商蜂窩網(wǎng)絡(luò)
@property (readonly) BOOL allowsCellularAccess;

NSURLRequest請求類除了在初始化時可以設(shè)定一些屬性,創(chuàng)建出來后則大部分屬性都為只讀的,無法設(shè)置與修改。另一個類NSMutableURLRequest可以更加靈活的設(shè)置請求的相關(guān)屬性。

NSMutableURLRequest類中常用方法與屬性總結(jié)

//設(shè)置請求的URL
@property (nullable, copy) NSURL *URL;
//設(shè)置請求的緩存策略
@property NSURLRequestCachePolicy cachePolicy;
//設(shè)置超時時間
@property NSTimeInterval timeoutInterval;
//設(shè)置緩存目錄
@property (nullable, copy) NSURL *mainDocumentURL;
//設(shè)置網(wǎng)絡(luò)服務類型
@property NSURLRequestNetworkServiceType networkServiceType NS_AVAILABLE(10_7, 4_0);
//設(shè)置是否允許使用服務商蜂窩網(wǎng)
@property BOOL allowsCellularAccess NS_AVAILABLE(10_8, 6_0);

NSURLRequest請求對象與HTTP/HTTPS協(xié)議相關(guān)請求的屬性設(shè)置:

以下屬性的設(shè)置必須使用NSMutableURLRequest類,如果是NSURLRequest,則只可以讀,不可以修改。

//設(shè)置HPPT請求方式 默認為“GET”
@property (copy) NSString *HTTPMethod;
//通過字典設(shè)置HTTP請求頭的鍵值數(shù)據(jù)
@property (nullable, copy) NSDictionary<NSString *, NSString *> *allHTTPHeaderFields;
//設(shè)置http請求頭中的字段值
- (void)setValue:(nullable NSString *)value forHTTPHeaderField:(NSString *)field;
//向http請求頭中添加一個字段
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field;
//設(shè)置http請求體 用于POST請求
@property (nullable, copy) NSData *HTTPBody;
//設(shè)置http請求體的輸入流
@property (nullable, retain) NSInputStream *HTTPBodyStream;
//設(shè)置發(fā)送請求時是否發(fā)送cookie數(shù)據(jù)
@property BOOL HTTPShouldHandleCookies;
//設(shè)置請求時是否按順序收發(fā) 默認禁用 在某些服務器中設(shè)為YES可以提高網(wǎng)絡(luò)性能
@property BOOL HTTPShouldUsePipelining;

請求回執(zhí)類NSURLResponse屬性簡介
NSURLResponse類中存放請求的回執(zhí)信息,在發(fā)送網(wǎng)絡(luò)請求時,如果請求成功,首先會接收到服務端的回執(zhí)信息,直接開始接收具體的返回數(shù)據(jù)。NSURLResponse對象中主要有以下屬性:

//請求的URL地址
@property (nullable, readonly, copy) NSURL *URL;
//返回數(shù)據(jù)的數(shù)據(jù)類型
@property (nullable, readonly, copy) NSString *MIMEType;
//獲取返回數(shù)據(jù)的內(nèi)容長度
@property (readonly) long long expectedContentLength;
//獲取返回數(shù)據(jù)的編碼方式
@property (nullable, readonly, copy) NSString *textEncodingName;
//返回拼接的數(shù)據(jù)文件名 以url為名 數(shù)據(jù)沒醒MIMEType為擴展名
@property (nullable, readonly, copy) NSString *suggestedFilename;
對于HTTP請求,請求回執(zhí)會被封裝為NSHTTPURLResponse對象,其中除了有上面那些屬性外,還有如下的擴展屬性:

//請求的狀態(tài)碼
@property (readonly) NSInteger statusCode;
//請求頭中所有的字段
@property (readonly, copy) NSDictionary *allHeaderFields;

以上就是武林技術(shù)頻道介紹的關(guān)于總結(jié)iOS之HTTP請求回執(zhí)類的用法,今天就為大家介紹到這里,希望這篇文章能夠給大家?guī)韼椭?,感謝大家的閱讀。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安顺市| 兴化市| 海南省| 梁山县| 合川市| 呼玛县| 金堂县| 安宁市| 门源| 依安县| 黄梅县| 达日县| 白城市| 潜江市| 和平区| 静海县| 秦皇岛市| 绍兴县| 宁蒗| 托克逊县| 五河县| 界首市| 汝城县| 漳浦县| 湾仔区| 大方县| 阿勒泰市| 正安县| 昭苏县| 铁力市| 富顺县| 平安县| 化隆| 聂拉木县| 新宾| 鲁甸县| 无锡市| 平遥县| 江北区| 赤峰市| 鹤峰县|