• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Sommer ist da! Laue Nächte, lange Abende im Biergarten und Mücken in Heeresstärke - dazu passend lautet das Thema unseres Fotowettbewerbs im Juni Nachtleben --> Klick

"HTTP Auth" in Swift

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Mit folgendem Beispiel lässt sich der Inhalt einer Webseite laden. Ist eine Seite mit HTTP-Auth geschützt, dann funktioniert dies nicht mehr.

Früher konnte man mit http://username:passwort@www.testseite.de den Namen und das Passwort direkt in der URL übergeben. Dies scheint aus Sichheitsgründen aber nicht mehr zu funktionieren.

Man kann also in seinem Programmcode den Namen und dass Passwort bei einer Abfrage übergeben. Das Internet ist voll von Beispielen. Leider funktioniert von den unzähigen Beispielen auf stackoverflow.com keine einzige.

Hat jemand eine Idee wie man das in Swift realisieren könnte?


Code:
let url = NSURL(string: "http://www.weather.com")!
        let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in
            if let urlContent = data {
                let webContent = NSString(data: urlContent, encoding: NSUTF8StringEncoding)
                print(webContent)
            }
        }
  task.resume()
 
https://gist.github.com/n8armstrong/5c5c828f1b82b0315e24
Hier z.B. ein Beispiel. Leider bricht XCode an der Stelle base64EncodedCredential ab mit der Fehlermeldung:

Cannot invoke 'base64EncodedStringWithOptions' with an argument list of type 'nil)'


ab

edit: Hier die Lösung
Code:
let base64EncodedCredential = userPasswordData!.base64EncodedStringWithOptions(nil)

ändern in
Code:
base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
 
Zuletzt bearbeitet: