In meinem iOS Projekt, das ich Alamofire
Bibliothek bin mit Remote-Dokumente zum Download (von einem Server mit Basic-Auth) auf diese Weise:Alamofire: Datei herunterladen und Prüfungsfehler
let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileURL = documentsURL.appendingPathComponent("foo.pdf")
return (filePath.url, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(myUrlRequest, to: destination).authenticate(user: user, password: password, persistence: .none).validate().response { response in
print(response)
if response.error == nil, let path = response.destinationURL?.path {
print(path)
}
}
Dies funktioniert gut! Die Datei wird ordnungsgemäß im Ordner Dokumente der App heruntergeladen.
Mein Problem ist, wenn user
oder/und password
falsch sind. In diesem Fall ist der Server-Antwort-Status 401 Unauthorized
und .validate()
Methode schlägt fehl, aber in meinem Ordner Dokumente finde ich die Datei "foo.pdf" wo der Inhalt ein xml ist, das den 401
Fehler erklärt. Was ich möchte, ist die Datei nur gespeichert, wenn die Validierung nicht fehlschlägt.
Meine Fragen: Gibt es einen Weg mit Alamofire, die Datei zu speichern, nur für den Fall, dass die Antwort validiert wird? Oder muss ich die Datei manuell löschen, wenn die Validierung fehlschlägt?
Dank @iur dieses Verhalten gebracht. Ich hatte die gleiche Zeit gelöst. – Giorgio