Проблема с RestApi с базовой аутентификацией - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь вызвать вызов RestApi с базовой аутентификацией. Я могу сделать звонок успешно, но проблема, с которой я сталкиваюсь, заключается в том, что, если я сообщу неверное имя пользователя и пароль в вызове, то я также получу успешный ответ. Я попытался сделать поле логина и пароля пустым, но все еще получен положительный ответ. Я считаю, что это проблема кеширования. Код, который я пытаюсь, выглядит следующим образом

let headers = [
            "cache-control": "no-cache"
        ]
        let login = ""
        let password = ""
        let request = NSMutableURLRequest(url: NSURL(string: urlString)! as URL,
                                          cachePolicy: .reloadIgnoringLocalAndRemoteCacheData,
                                          timeoutInterval: 10.0)
        request.httpMethod = "GET"
        request.allHTTPHeaderFields = headers

        let config = URLSessionConfiguration.default
        let loginData = String(format: "%@:%@", login, password).data(using: String.Encoding.utf8)!
        let base64EncodedCredential = loginData.base64EncodedString()
        let authString = "Basic \(base64EncodedCredential)"
        config.httpAdditionalHeaders = ["Authorization" : authString]

        let session = URLSession.shared
        let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
            if (error != nil) {
                print(error!)
            } else {
                let httpResponse = response as? HTTPURLResponse
                print(httpResponse!)
                let responseData = String(data: data!, encoding: String.Encoding.utf8)
                print(responseData!)
            }
        })
        dataTask.resume()

Звонок идет на сервер IIS. Может кто-нибудь помочь мне решить проблему. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...