views:

194

answers:

1

Hello everyone.

I have discovered ASIHTTPRequest a few days ago and I'm now blocked on a thing. I would like to authenticate my self on an https address (https://user:[email protected]/0.1/userCom/?apikey=12432 )

I try this code :

NSURL *url = [NSURL URLWithString:@"https://api.domain.com/0.1/userCom/?apikey=12432"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; [request setDelegate:self]; [request setUsername:@"myUserName"]; [request setPassword:@"myPassword"]; [request startAsynchronous];

And I've implemented the delegate methods

-(void)requestFailed:(ASIHTTPRequest *)request
{
 NSError *error = [request error];
 NSLog(@"Failed %@ with code %d and with userInfo %@",[error domain],[error code],[error userInfo]);
}

-(void)requestFinished:(ASIHTTPRequest *)request
{
 NSLog(@"Finished : %@",[request responseString]);
}

When I launch my application the requestFailed method is directly called and I have this message :

Failed ASIHTTPRequestErrorDomain with code 1 and with userInfo {
NSLocalizedDescription = "A connection failure occurred: SSL problem (possibly a bad/expired/self-signed certificate)";
NSUnderlyingError = "Error Domain=NSOSStatusErrorDomain Code=-9807 \"The operation couldn\U2019t be completed. (OSStatus error -9807.)\" UserInfo=0x680fbf0 {}";

Have got an idea to resolve this problem ? Thanks a lot !

A: 

There are two possible approaches:

i) Fix the certificate on your/the server if possible. (Or there's a small chance you might be using the wrong hostname to connect? Does the same error appear when using safari on the device?)

or:

ii) Disable certificate checking:

[request setValidatesSecureCertificate:NO];
JosephH
i) This is not my server so I'll check this with my client :)If I try https://user:[email protected]/0.1/userCom/?apikey=12432 on my Safari Mac there's no problem.ii) Working well !Thanks for your help. If you have any other thing to add please write it :)
Pierre
It's possible you Mac has some certificate authorities present that the iphone doesn't, and a missing certificate authority could cause that kind of error. If you get a similar error on safari on the device then that is the problem - if safari on the device works okay then it could be an asihttprequest bug somehow.
JosephH