網絡鏈接相關類

NSURLConnection:支持ftp://,http://,https://,file:///(本地文件)鏈接
發送同步鏈接請求,該函數會阻塞,直到有響應返回
+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

異步鏈接請求,執行該函數後就當即開始鏈接;通常來講都在主線程中調用該函數;若在新線程中調用,則回調函數不會被執行,需經過 scheduleInRunLoop使回調生效
+ (NSURLConnection *)connectionWithRequest:(NSURLRequest *)request delegate:(id)delegate

在其餘線程中使異步鏈接的回調生效
- (void)scheduleInRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode
- (void)unscheduleFromRunLoop:(NSRunLoop *)aRunLoop forMode:(NSString *)mode

通常狀況下,咱們使用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)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field
- (void)addValue:(NSString *)value forHTTPHeaderField:(NSString *)field   與 setValue 的不一樣:若已存在一個鍵值,則附加新值到舊值的後面,以逗號分隔

NSURLResponse:
- (NSString *)suggestedFilename 返回網絡數據須要保存的文件名

NSHTTPURLResponse: NSURLResponse的子類
- (NSDictionary *)allHeaderFields  獲取HTTP服務器返回的頭信息
- (NSInteger)statusCode 獲取狀態碼
+ (NSString *)localizedStringForStatusCode:(NSInteger)statusCode 根據狀態碼獲取本地化文本內容,好比狀態碼200表示無錯誤

NSURL:
- (NSString *)absoluteString  獲取url的字符串
- (NSString *)query 獲取url中問號後面跟的參數字符串
相關文章
相關標籤/搜索