NSURLConnection:支持ftp://,http://,https://,file:///(本地文件)鏈接
異步鏈接請求,執行該函數後就當即開始鏈接;通常來講都在主線程中調用該函數;若在新線程中調用,則回調函數不會被執行,需經過
scheduleInRunLoop使回調生效
+ (NSURLConnection *)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate
在其餘線程中使異步鏈接的回調生效
通常狀況下,咱們使用NSURLConnection時,都使用以下的代碼:
_connection = [[NSURLConnection alloc] initWithRequest:URLRequest delegate:self];
這段代碼建立的connection運行在main runloop以及NSEventTrackingRunLoopMo
de下,而該模式在mouse-dragging loops and other sorts of user interface tracking loops期間會阻止對該connection的代理通知事件,好比在UITableView滾動的時候,connection的代理方法就不會被通知。這不是咱們想要的,若是想要在mouse-dragging loops and other sorts of user interface tracking loops期間咱們的connection的代理方法仍然被調用,可用如下代碼替換上面的代碼:
_connection = [[NSURLConnection alloc] initWithRequest:URLRequest delegate:self startImmediately:NO];
[_connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[_connection start];
NSURLRequest:url請求,包括一系列獲取屬性值方法,不能設置,要設置只能使用
NSMutableURLRequest
初始化一個請求,第一個構造函數等同於第二個構造函數的緩存策略參數
爲
NSURLRequestUseProtocolCachePolicy
,超時時間60秒
+ (id)requestWithURL:(NSURL *)theURL
+ (id)requestWithURL:(NSURL *)theURL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval
NSMutableURLRequest:
NSURLRequest子類,實際上該類就是提供了
NSURLRequest全部屬性的設置方法
經常使用設置函數:
- (void)setHTTPBody:(NSData *)data
- (void)setHTTPMethod:(NSString *)method 默認是GET
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field 與
setValue
的不一樣:若已存在一個鍵值,則附加新值到舊值的後面,以逗號分隔
NSURLResponse:
- (NSString *)suggestedFilename 返回網絡數據須要保存的文件名
NSHTTPURLResponse:
NSURLResponse的子類
- (NSInteger)statusCode 獲取狀態碼
+ (NSString *)localizedStringForStatusCode:(NSInteger)statusCode 根據狀態碼獲取本地化文本內容,好比狀態碼200表示無錯誤
NSURL: