• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

"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:[email protected] 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: