저는 iOS 개발의 초보자입니다. 인증을 통해 IBM Domino 서버의 일부 데이터에 액세스하려고합니다. 코드는 서버의 로그인 페이지 만 되돌릴 수 있습니다. 누구 잘못 알아요?스위프트 3 IBM Domino 서버의 URLSession 인증
class URLSessionTest: NSObject, URLSessionDelegate {
let user = "myUser"
let password = "myPwd"
let url = URL.init(string: "https://www.example.com/Test.nsf/0/91182C6C9EEE0414C12580A300312D1A?Opendocument")
func getData() {
var request = URLRequest.init(url: url!)
request.httpMethod = "POST"
request.timeoutInterval = 30.0
let parameters = ["Username": user, "Password": password] as Dictionary<String, String>
do {
request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
} catch let error {
print("request serialization error: \(error.localizedDescription)")
}
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration, delegate: self, delegateQueue: nil)
let task = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) in
if error != nil {
print ("dataTask error: \(error!.localizedDescription)")
}
if let myresponse = response as? HTTPURLResponse {
print ("dataTask response: \(myresponse)")
myresponse.statusCode
}
let myval = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)!
print("dataTask data: \(myval)")
})
task.resume()
}
그리고 대표 :
challenge NSURLAuthenticationMethodServerTrust
Server Trust
Use credential
dataTask response: <NSHTTPURLResponse: 0x610000031780> { URL: https://www.example.com/Test.nsf/0/91182C6C9EEE0414C12580A300312D1A?Opendocument } { status code: 200, headers {
"Cache-Control" = "no-cache";
"Content-Length" = 5949;
"Content-Type" = "text/html; charset=UTF-8";
Date = "Sun, 12 Feb 2017 19:14:19 GMT";
Expires = "Tue, 01 Jan 1980 06:00:00 GMT";
Server = "Lotus-Domino";
"Strict-Transport-Security" = "max-age=0";} }
내 생각에 코드에 기본 인증이 필요합니다. 문제의 도메인에 대해 Domino 서버가 사용하도록 설정된 인증 방법을 확인하십시오. –
이것은 IBM 특정 문제로 보입니다. 필자는 IBM Websphere Portal에 액세스하여 IBM Domino와 같은 유사한 결과를 보았습니다. 그러나 Microsoft SharePoint 사이트에 로그인하려고했는데 성공했습니다. –
인증을 위해 IBM Domino 및 IBM Websphere 서버가 LTPA를 사용하도록 설정되었을 수 있습니다. 이것은 귀하의 문제를 설명 할 수 있습니다. 따라서 대부분의 경우 IBM Domino 서버의 사이트에 대한 인증 방법을 기본 인증 –