1

I have big problem in iOS. For some reasons,I must use asynchronous,Because I want to pass SSL error. So,I use NSURLconnection and get response data from Web server in didReceiveData. and it work very well when I just post one url to server.

But my question is : if I need to post 2 or 3 different url to server in the same time! then I receive response data in didReceiveData, I think it will be confusion! How can I know which response's data is belong to which post task?? Have anyone can help me? Please.. thanks.

  • 1
    Use the `NSURLConnection` parameter of each delegate method to know which connection the response is for. – rmaddy Jul 24 '14 at 03:46
  • rmaddy,can you give me example code to NSURLConnection parameter of each delegate and I need to write different didReceiveData ? – user3286613 Jul 24 '14 at 03:49

1 Answers1

0

For that you have to check your connection in Delegate methods of NSURLConnection. & use two different resposeData.

Example: here two connections connSend & connRecieve

If using connSend

NSURL *url = // Your URL
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
connSend=[[NSURLConnection alloc] initWithRequest:requestObj delegate:self];

And For other Connection

NSURL *url = // Your URL
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
connRecieve =[[NSURLConnection alloc] initWithRequest:requestObj delegate:self]




- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    if (connection==connSend) {
        responseSend = [[NSMutableData alloc]init];
        [responseSend setLength:0];
    }
    else{
        responseData = [[NSMutableData alloc]init];
        [responseData setLength:0];
    }
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    if (connection==connSend) {
        [responseSend appendData:data];
    }
    else{
        [responseData appendData:data];
    }
}

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    if (connSend==connection) {
       NSLog(@"Error in sending");
    }
    else{
        NSLog(@"Error in receiving");
    }
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{

    if (connection==connSend) {
    // Connection send.
    }
    else{
    // Connection recive
     }

}

Its better you can create different class for getting different server responce,

Toseef Khilji
  • 17,192
  • 12
  • 80
  • 121