2017-07-21 4 views
2

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?

Antwort

1

Ich habe das ähnliche Problem im Moment. Bis jetzt ist das einzige, woran ich denken könnte, ist Rohöl

als Antwort Schließung.

Ich werde jedoch weiter untersuchen.

EDIT 1:

Es scheint, dieses Problem etwas vor längerer Zeit https://github.com/Alamofire/Alamofire/issues/233

+0

Dank @iur dieses Verhalten gebracht. Ich hatte die gleiche Zeit gelöst. – Giorgio

Verwandte Themen