NSURLConnection
Delegate methods
Section titled “Delegate methods”//conform the NSURLConnectionDelegate protocol.
@interface ViewController : UIViewController<NSURLConnectionDelegate>{ NSMutableData *_responseData;}//Implementation of the NSURLConnection protocol methods.
#pragma mark NSURLConnection Delegate Methods
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { // A response has been received, this is where we initialize the instance var you created // so that we can append data to it in the didReceiveData method // Furthermore, this method is called each time there is a redirect so reinitializing it // also serves to clear it _responseData = [[NSMutableData alloc] init];}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { // Append the new data to the instance variable you declared [_responseData appendData:data];}
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse*)cachedResponse { // Return nil to indicate not necessary to store a cached response for this connection return nil;}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection { // The request is complete and data has been received // You can parse the stuff in your instance variable now
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { // The request has failed for some reason! // Check the error var}Synchronous Request
Section titled “Synchronous Request”NSURLRequest * urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];NSURLResponse * response = nil;NSError * error = nil;NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];
if (error == nil){ // Parse data here}Asynchronous request
Section titled “Asynchronous request”// Create the request instance.NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];
// Create url connection and fire requestNSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];