你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS網絡訪問詳解

IOS網絡訪問詳解

編輯:IOS開發綜合
第一、訪問網絡的方式   同步請求:數據的請求過程是由主線程發起的,網絡加載需要一定的時間,因此會堵塞主線程   異步請求:數據的請求在多線程中完成   同步請求無法取消,異步請求的過程中可以取消,同步請求無法監聽加載進度,異步請求可以監聽   第二、訪問網絡的基本流程   構造NSURL實例   生成NSURLRequest請求   通過NSURLConnection發送請求   通過返回NSURLRespond實例和NSErro實例分析結果   接受返回數據   NSURL實例包含了地址信息,如host、scheme、relativePath、port、path   第三、同步請求   [objc]   <span style="font-size:18px">    NSMutableURLRequest *request=[[NSMutableURLRequest alloc] init];       [request setHTTPMethod:@"GET"];       [request setURL:url];       [request setTimeoutInterval:60];              NSURLResponse *response;       NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];       UIImage *image=[UIImage imageWithData:data];       self.image=image;   </span>     第四、異步請求 5.0以上支持   [objc] view plaincopyprint? <span style="font-size:18px">NSMutableURLRequest *request=[[NSMutableURLRequest alloc] init];       [request setHTTPMethod:@"GET"];       [request setURL:url];       [request setTimeoutInterval:60];              NSOperationQueue *queue=[[NSOperationQueue alloc] init];       [NSURLConnection sendAsynchronousRequest:request queue: queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {           UIImage *image=[UIImage imageWithData:data];                 dispatch_sync(dispatch_get_main_queue(), ^{                     self.image=image;                 });       }];   </span>     5.0一下代碼實現: [objc]  <span style="font-size:18px">- (void)setURL:(NSURL *)url {       NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];       //設置請求方式       [request setHTTPMethod:@"GET"];              [request setURL:url];       //設置超時時間       [request setTimeoutInterval:60];          self.data = [NSMutableData data];       //發送一個異步請求       [NSURLConnection connectionWithRequest:request delegate:self];   }      #pragma mark - NSURLConnection delegate   //數據加載過程中調用   - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {       [self.data appendData:data];   }      //數據加載完成後調用   - (void)connectionDidFinishLoading:(NSURLConnection *)connection {       UIImage *image = [UIImage imageWithData:self.data];       self.image = image;   }      - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {       NSLog(@"請求網絡失敗:%@",error);   }      </span>    
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved