• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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:[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()
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
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: