サーバーへの接続に問題があります。私は単純にユーザー名とパスワードを送信し、XMLファイルからデータを取得したい。Swift 3 XMLの証明書が無効なサーバーに接続します。
let loginString = String(format: "%@:%@", username, password)
let loginData = loginString.data(using: String.Encoding.utf8)!
let base64LoginString = loginData.base64EncodedString()
let baseUrl = "xxxxxx"
let request = NSMutableURLRequest(url: NSURL(string: baseUrl)! as URL)
request.httpMethod = "POST"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
let session = URLSession.shared
request.httpMethod = "GET"
var err: NSError?
let task = session.dataTask(with: request as URLRequest) {
(data, response, error) in
if data == nil {
print("dataTaskWithRequest error: \(error)")
return
}
let xml = SWXMLHash.parse(data!)
print(xml["mobile_devices"]["mobile_device"]["serial_number"].element?.text)
DispatchQueue.main.async(execute: {
// use main thread for UI updates
})
}
task.resume()
私はそれを実行すると、私は次のエラー(複数可)を取得:
nw_coretls_callback_handshake_message_block_invoke_3 tls_handshake_continue: [-9812] 2017-05-04 08:20:45.311 xxxx[23410:4428038] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) dataTaskWithRequest error: Optional(Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “xxxxxxx” which could put your confidential information at risk." UserInfo={NSURLErrorFailingURLPeerTrustErrorKey=, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9813, NSErrorPeerCertificateChainKey=("cert(0x7f88d8834000) s: xxxxxxx JSS Built-in Certificate Authority>",
私は本当に前にAPIとの事で何かをやったことがないので、私が行くように、私が学んでいます。以前はplistファイルを編集して接続できるようにしなければならなかったし、以前に問題を修正した。私はこれを遠く持っているが、私はそれをどのように過去に到達するか分からない。
私はこれを見た:Connect to a Server with Invalid Certificate using NSURLSession (swift2,xcode7,ios9) を、それは私のコードで
let session = URLSession.shared
ラインを破りました。
私もこれを見てきましたが、私はそれを使用する方法がわからないよ:
Swift: How to request a URL with a self-signed certificate?