How can I send multiple url request from a NSURLConnection delegate?

后端 未结 3 1191
天涯浪人
天涯浪人 2021-02-10 17:51

This is the logical flow for my application:

  1. At first, when the view controller has finished loading, then a NSURLConnection request can start its

相关标签:
3条回答
  • 2021-02-10 18:29

    I do this with the NSURLConnection Making them properties, then checking which one it is:

     @property (nonatomic,retain) NSURLConnection *myConnection;
    @property (nonatomic,retain) NSURLConnection *mySecondConnection;
    

    then in the delegate:

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection{
    
         if (connection == myConnection){
           //do something
        }
    
        if (connection == mySecondConnection){
           // do something else
            }
    
    }
    

    You can pass your NSURLRequest to the connection:

    self.myConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    
    0 讨论(0)
  • 2021-02-10 18:31

    There is a third party library available which is a wrapper on CFNetwork is ASIHTTPREQUEST

    This Library should do work for you. so that you don't have to write the code from scratch. other alternative is create one class which will be responsible for creating NSURLConnection then sending the request and finally notify to view controller using delegate or notification one data is received .

    0 讨论(0)
  • 2021-02-10 18:33
    - (void)viedDidLoad{
    
        [super viewDidLoad];
        [self firstRequestMethod];
    
    }
    
    - (void)firstRequestMethod{
    
        NSString *myFirstRequestURL = @"<URL>";
        NSURL *webURL = [NSURL URLWithString:myFirstRequestURL];        
    
        NSURLRequest *request = [NSURLRequest requestWithURL:webURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        NSError *error;
        NSURLResponse *response;
        NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    
        if(returnData)
        {
            NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSASCIIStringEncoding];
            //Parse your response here.
            //Is desired response obtain call the second Request, as described above
            if (TRUE) {  //on success
                [self secondRequestMethod];
            }
    
        }
    
    
    
    }
    
    - (void)secondRequestMethod{
    
        NSString *mySecondRequestURL = @"<URL>";
        NSURL *webURL = [NSURL URLWithString:mySecondRequestURL];        
    
        NSURLRequest *request = [NSURLRequest requestWithURL:webURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
        NSError *error;
        NSURLResponse *response;
        NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    
        if(returnData)
        {
            NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSASCIIStringEncoding];
            //Parse your response here.
            //Is desired response obtain call the second Request, as described above
            if (TRUE) {  //on success
                //subsequent calls to other url, same as above
            }
    
        }
    
    
    
    }
    

    Hope this will help you understand better....

    0 讨论(0)
提交回复
热议问题