[转]IOS程序之HTTP同步请求与异步请求问题解决

IOS程序HTTP同步请求与异步请求问题解决是本文要介绍的内容,内容不多,主要是通过代码实现同步和异步的请求,我们来看详细内容。

异步请求,

  1.  NSMutableData* buf = [[NSMutableData alloc] initWithLength:0];  
  2.  NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:req delegate:self];   
  3.  // 收到响应时, 会触发  
  4.  - (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)aResponse;  
  5.  // 你可以在里面判断返回结果, 或者处理返回的http头中的信息   
  6.  // 每收到一次数据, 会调用一次  
  7.  - (void)connection:(NSURLConnection *)aConn didReceiveData:(NSData *)data;  
  8.  // 因此一般来说,是  
  9.  - (void)connection:(NSURLConnection *)aConn didReceiveData:(NSData *)data  
  10.  {     
  11.   [buf appendData:data];  
  12. }  
  13. // 当然buffer就是前面initWithRequest时同时声明的.   
  14. // 网络错误时触发  
  15. - (void)connection:(NSURLConnection *)aConn didFailWithError:(NSError *)error;  
  16.  // 全部数据接收完毕时触发  
  17.  - (void)connectionDidFinishLoading:(NSURLConnection *)aConn;   

同步请求

    1. // 初始化請求 NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];  
    2.  // 設置URL  
    3. [request setURL:[NSURL URLWithString:urlStr]];  
    4. // 設置HTTP方法          
    5. [request setHTTPMethod:@"GET"];  
    6. // 發送同步請求, 這裡得returnData就是返回得數據楽          
    7. NSData *returnData = [NSURLConnection sendSynchronousRequest:request    returningResponse:nil error:nil];   
    8. // 釋放對象          
    9. [request release]; 

posted on 2012-05-04 10:21  甲骨魚  阅读(455)  评论(0编辑  收藏  举报

导航