2016-07-18 1 views
1

프록시 호스트/포트를 통해 NSURLRequest를 만들고 있습니다. 요청이 적절한 응답을받는 것 같습니다. 유일한 문제는이 프록시/포트에 인증이 필요하다는 것입니다. 프록시 호스트를 인증하라는 메시지가 표시되지 않는 이유는 무엇입니까?Swift 2 OSX 프록시없이 세션이 인증없이 어떻게 성공합니까?

func sendRequest() { 
    let request = NSMutableURLRequest(NSURL(string: "https://www.awebsite/login") 
    let params = "&username=\(username)&password=\(password)&okc_api=1" 
    request.HTTPBody = params.dataUsingEncoding(NSUTF8StringEncoding) 
    request.HTTPMethod = "POST" 

    let proxyDict:[NSObject:AnyObject] = [ 
     kCFNetworkProxiesHTTPEnable: NSNumber(int: 1) as CFNumber, 
     kCFStreamPropertyHTTPProxyHost: "123.456.789.012", 
     kCFStreamPropertyHTTPProxyPort: 1234, 
     kCFStreamPropertyHTTPSProxyHost: "123.456.789.012", 
     kCFStreamPropertyHTTPSProxyPort: 1234, 
     kCFProxyTypeKey: kCFProxyTypeHTTP, 
     kCFProxyTypeKey: kCFProxyTypeHTTPS 
    ] 

    let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() 
    configuration.connectionProxyDictionary = proxyDict 
    let operationQueue = NSOperationQueue() 
    let session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: operationQueue) 

    let task = session.dataTaskWithRequest(request) { 
     (data, response, error) in 
     do { 
      let responseHeaders = response as! NSHTTPURLResponse 
      let statusCode = responseHeaders.statusCode 
      let contentsOfURL = try NSString(contentsOfURL: URL, encoding: NSUTF8StringEncoding) 
      if contentsOfURL.containsString("p_home") { 
       print(statusCode) 
       print("LOGGED IN!") 
      } else { 
       print("FAILED LOGIN!") 
      } 
      print(statusCode) 
     } catch { 
      print(error) 
     } 
    } 
    task.resume() 

} 
+0

친애하는 @dbconfession 문제를 해결할 수 있었습니까? 나는 같은 문제가있다. ( –

답변

1

프록시의 암호는 이미 이미 시스템 키 체인에 저장되어 있으므로 다시 묻지 않습니다. 확실하게 알고 싶다면 프록시 서버의 로그를 체크하여 요청이 적절한 인증으로 들어오는 지 확인해야합니다.