2

SSL 문제가있는 웹 서비스에 뭔가를 게시하고 싶습니다. 난 다음 방법을 사용했을iOS7에서 NSURLAuthenticationChallenge 처리 방법

NSURLConnection * urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

즉시 데이터 전송을 시작한다 요청에 설정되어있는 상태; 그러나 서비스에 보안 문제가있어 제대로 작동하지 않습니다. 그러나 데이터를 보내고 보안 문제를 무시하고 싶습니다. 그래서 NSURLConnectionDelegate의 다음과 같은 방법을 사용했습니다.

그러나 더 이상 사용되지 않습니다. 어떻게 보안 문제를 처리하고 데이터를 고려하지 않고 웹 서비스로 전달할 수 있습니까?

답변

1

이렇게하면 willSendRequestForAuthenticationChallenge를 사용해야합니다.

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 
{ 
    self.challenge = challenge; 
    [self askUserAcceptSSLError]; 
} 

- (void)askUserAcceptSSLError 
{ 
    // Ask user like UIAlertView or so. 
    // Put these responses in UIAlertView delegate ... 

    // If User accepts (or force this if you want ignore SSL certificate errors): 
    [[self.challenge sender] 
     useCredential:[NSURLCredential credentialForTrust:self.challenge.protectionSpace.serverTrust] 
     forAuthenticationChallenge:self.challenge]; 
    [[self.challenge sender] continueWithoutCredentialForAuthenticationChallenge:self.challenge]; 

    // If User deny request: 
    [[self.challenge sender] cancelAuthenticationChallenge:self.challenge]; 
} 
관련 문제