SSL connection iphone

Here I have posted code how to calling “Web service” which are SSL enabled. like “https://test.com/testservice.svc/gettest”

#import “Hello_SOAPViewController.h”
@interface NSURLRequest (withHttpsCertificates)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end

@implementation Hello_SOAPViewController

NSMutableData *webData;

– (void)viewDidLoad {

//////////////////////////////////////////////////

//Web Service Call

//////////////////////////////////////////////////

NSURL *url = [NSURL URLWithString:@”https://test.com/testservice.svc/gettest”];

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];

[theRequest addValue:@”application/x-www-form-urlencoded” forHTTPHeaderField:@”Content-Type”];

[theRequest setHTTPMethod:@”GET”];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

if(theConnection) {
webData = [[NSMutableData data] retain];
}
else {
NSLog(@”theConnection is NULL”);
}

}

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[webData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{

NSLog(@”ERROR with theConnection:%@”,[error description]);
if ([error code] == -1001 ){//isEqualToString:@”timed out”]) {
UIAlertView *alertView = [[[UIAlertView alloc] initWithTitle:@”Connection Error” message:@”Server Unresponsive” delegate:self cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease];
[alertView show];

}else{
UIAlertView *alertView = [[[UIAlertView alloc] initWithTitle:@”Connection Error” message:@”Check your internet connection ” delegate:self cancelButtonTitle:@”OK” otherButtonTitles:nil] autorelease];
[alertView show];
}

[connection release];
[webData release];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@”DONE. Received Bytes: %d”, [webData length]);

///////////////////////
//Process Your Data here:

///////////////////////

[connection release];
[webData release];

}

– (void)didReceiveMemoryWarning {
// Releases the view if it doesn’t have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren’t in use.
}

– (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

– (void)dealloc {

[super dealloc];
}

Source code:
http://cid-efc0ec2e2cd761ee.office.live.com/self.aspx/.Public/SSL%5E_iPhone%5E_Connection.zip

Share