URL Loading System - Objective C
URL Loading is useful in accessing URL, i.e. the items from the internet. It is provided with the help of the following classes:
Here is a simple example for url loading. This cannot be run on command line. We need to create Cocoa Application.- NSMutableURLRequest
- NSURLConnection
- NSURLCache
- NSURLAuthenticationChallenge
- NSURLCredential
- NSURLProtectionSpace
- NSURLResponse
- NSURLDownload
- NSURLSession
This can be done by selecting New in XCode, then Project and select Cocoa Application under the OS X application section of the window that appears.
Complete the sequence of steps by clicking next and you will be asked to provide a project name and you can give it a name.
The appdelegate.h file will be as follows:
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject < NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@end
update the AppDelegate.m file to following:
#import "AppDelegate.h"
@interface SampleClass : NSObject <NSURLConnectionDelegate>
{
NSMutableData *_responseData;
}
- (void)initiateURLConnection;
@end
@implementation SampleClass
-(void)initiateURLConnection
{
//create the request
NSURLRequest *request = [NSURLRequest requestWithURL :
[NSURL URLWithString : @"http://www.soltrickspro.blogspot.com"]];
//create url connection and fire request
NSURLConnection *conn = [[NSURLConnection alloc ] initWithRequest : request
delegate : self]
[conn start];
}
#pragma mark NSURLConnection Delegate Methods
- (void) connection : (NSURLConnection *)connection didReceiveRespone :
(NSURLResponse *) response {
_responseData = [[NSMutableData alloc]init];
}
- (void)connection : (NSURLConnection *) connection didReceiveData :
(NSData *)data {
[_responseData appendData : data];
}
-(NSCachedURLResponse *) connection : (NSURLConnection *) connection
willResponse : (NSCachedURLResponse *)cachedResponse {
return nil;
}
- (void)connectionDidFinishLoading : (NSURLConnection *)connection {
NSLog(@"%@", [[NSString alloc]initWithData : _responseData
encoding : NSUTF8StringEncoding]);
}
- (void)connection : (NSURLConnection *)connection didFailWithError : (NSError *)error
{
}
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching : (NSNotification *)aNotification
{
SampleClass *sampleClass = [[SampleClass alloc] init];
[sampleClass initiateURLConnection ];
}
@end
In the above program , we have created a simple URL connection that takes the time in JSON format and display the time.
NSData *data = [fileManager contentsAtPath :@"Path"];
No comments: