이전에이 오류가 발생 했으므로 .plist 파일에 정보를 추가하는 것이 좋습니다. 던져 같은 오류Swift 3 NSURLSession/NSURLConnection 인증을 사용하여 사이트에 연결할 때 HTTP로드가 실패했습니다.
How do I load an HTTP URL with App Transport Security enabled in iOS 9?
NSURLSession/NSURLConnection HTTP load failed on iOS 9
여전히NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) on a subdomain?
내 프로그램 결과 :
2017- 나는 내가 본 것들 중 각 시도했습니다 05-08 08 : 29 : 37.781075-0400 xxxx [3256 : 408961] [nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue : [-9812],451,515,2017년 5월 8일 08 : 29 : 37.781 XXXX [3256 : 408982] NSURLSession /있는 NSURLConnection HTTP로드 실패 (kCFStreamErrorDomainSSL, -9813)
내 관련 코드는 여기에 있습니다 :
let username = "xxxx"
let password = "xxxx"
let loginString = String(format: "%@:%@", username, password)
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()
let baseUrl = "https://xxxx"
var request = URLRequest(url: URL(string: baseUrl)! as URL)
let baseUrl = "server i want.xml"
let request = NSMutableURLRequest(url: NSURL(string: baseUrl)! as URL)
request.httpMethod = "POST"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
let session = URLSession.shared
var err: NSError?
let task = session.dataTask(with: request as URLRequest) {
(data, response, error) in
if data == nil {
print("dataTaskWithRequest error: \(err)")
return
}
let xml = SWXMLHash.parse(data!)
let serialNumFromXML = xml["mobile_devices"]["mobile_device"]["serial_number"].element?.text
func urlSession(
_ session: URLSession,
didReceive challenge: URLAuthenticationChallenge,
completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void)
{
completionHandler(
.useCredential,
URLCredential(trust: challenge.protectionSpace.serverTrust!))
}
인증서와 관련이있을 수도 있지만 인증서를받지 못해서 서버를 변경할 수 없으므로 해당 인증서를받을 수 없습니다. plist를 변경하는 것보다 더 많은 것이 있습니까?
내 plist 파일에는 XML 파일이있는 도메인의 임의로드 허용 및 예외 도메인이 있습니다.
https://www.w3schools.com/xml/note.xml과 같은 테스트 파일의 내용을 가져올 수 있지만 필요한 파일은 사용자 이름/암호 "인증 필요"팝업 뒤에 있습니다.
나는 또한 Alamofire 라이브러리를 시도했습니다, 같은 일이 발생nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue : [-9807] 2017년 5월 8일 09 : 42 : 08.452 XXX [6128 : 888398] NSURLSession /있는 NSURLConnection HTTP로드 (kCFStreamErrorDomainSSL, -9802)이
이를 참조하십시오 http://stackoverflow.com/a/43303169/3901620 및 http://stackoverflow.com/a/ 33227527/3901620 – KKRocks
@KKRocks 흠. 방금 자기 서명 인증서를 작성했지만 수정하지 않았습니다. nscurl은 모든 테스트에 실패하지만, 서버를 제어하지 못하므로 해결할 수 없습니다. – AON