J’essaie de récupérer un fichier depuis une url protégé par une authentification basic (login + mot de passe)
Je n’arrive pas à effectuer cette requête en swift, j’ai réussi en Java pourtant…
Voici mon code en swift qui ne marche pas
let url = URL(string: "www.myurl.com")!
let login = "login:mdp"
let userPasswordData = login.data(using: String.Encoding.utf8)
let base64EncodedCredential : String = (userPasswordData?.base64EncodedString())!
let authString = "Basic " + "\(base64EncodedCredential)"
let config : URLSessionConfiguration = URLSessionConfiguration.default
config.httpAdditionalHeaders = ["Authorization": authString]
let session : URLSession = URLSession(configuration: config)
let task = session.dataTask(with: url) {
(data, response, error) in
if let httpResponse = response as? HTTPURLResponse {
let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print(dataString)
}
}
Et j’obtiens malgré tout une erreur de type :
401 Unauthorized
This server could not verify that you
are authorized to access the document
requested. Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn’t understand how to supply
the credentials required.
Pour les opérations réseau, il est souvent plus simple de passer par Alamofire, surtout dès que tu utilises de l’authentification, de l’upload, etc.
Par exemple dans ton cas voici le lien direct : https://github.com/Alamofire/Alamofire#authentication
Je crois que pour le moments sa fonctionne.
J’ai quelque app qui utilise NSAppTransportSecurity et tous on été
accepté par applestore. Le dernier remonte à une dizaine de jours…