2010-04-28 8 views
9

ASIHTTPRequest가 HTTPS 연결을 지원합니까? 내 연결은 HTTP 연결에서 작동하고 HTTPS 연결을 시도하면 오류가 발생합니다. 참조ASIHTTPRequest - HTTPS

[request setValidatesSecureCertificate:NO] 작품 -

-(void) getData 
{ 

av.hidden = NO; 
[av startAnimating]; 

NSString *urlString = [IP stringByAppendingString:@"Method1"]; 
NSURL *url = [NSURL URLWithString:urlString]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
NSLog(@"URL = %@",url); 
[request setRequestMethod:@"POST"]; 
[request setPostValue:@"val1" forKey:@"key1"]; 
[request setPostValue:@"val2" forKey:@"key2"]; 
[request setDelegate:self]; 
[request startAsynchronous];  
} 

- (void)requestFinished:(ASIHTTPRequest *)request 
{ 
    // Use when fetching text data 
    //NSString *responseString = [request responseString]; 

    // Use when fetching binary data 
    NSData *responseData = [request responseData]; 
    [self parseData:responseData]; 

    [av stopAnimating]; 
    av.hidden = YES; 
} 


- (void)requestFailed:(ASIHTTPRequest *)request 
{ 
    NSError *error = [request error]; 
    [av stopAnimating];  
    av.hidden = YES; 
} 

감사합니다,
테이야

답변

17

으악는, 죄송합니다, 그것을 알아 냈다 (requestFailed로 들어갑니다 나에게 ASIHTTPErrorRequestDomain을 제공합니다). 이 사람들에

감사합니다 - http://www.iphonedevsdk.com/forum/iphone-sdk-development/29417-asihttprequest-library-works-https.html

편집 :이 일부 upvotes을 받고 있기 때문에, 난 그냥이 유효한 SSL 인증서에 대한 최선의 방법하지 않을 수도 있음을 추가하고 싶습니다. 내가 사용했던 인증서는 자체 서명 된 인증서 였으므로 괜찮 았습니다.

+3

"중간자 공격 (man-in-the-middle attack)을 통해 공격자가 데이터를 가로 채고 해독하거나 변경했기 때문에 상관하지 않으므로 자체 서명 된 인증서가 괜찮습니다"라고 생각합니다. :-) – JosephH

+0

하하 사실 충분히, 사실 10 달러를 들이지 않고 인증서를받는 것보다 조금 더 복잡합니다. GoDaddy에서 인증서를 구입했지만 QA 서버의 인증서에 호스트 이름이 일치하지 않아 일부 브라우저에서 경고가 표시되고 ASIHTTPRequest를 사용할 때 명백히 거부됩니다. 아무도 그것을 고칠 돌봐 및 여기에 우리가 있습니다 :) –

+0

놀라운 친구. 당신은 시간을 절약했습니다. –