Seit Swift 3 Update ändere ich meine Anforderungen von NSMutableURLRequest zu URLRequest. Danach stoppten alle meine Anfragen wegen ungültiger Anmeldeinformationen. Habe schon alles ausprobiert und gesucht. Mein Service läuft wie vorher und testet meine Anfragen von einem Anfrage-Simulator und ging gut.URLRequest Authorization Header konnte nicht festgelegt werden
let url : NSString = "http://url.service.com/method?param=\(name)" as NSString
var request = URLRequest(url: URL(string: url.addingPercentEscapes(using: String.Encoding.utf8.rawValue)!)!)
request.httpMethod = "POST"
request.setAuthorizationHeader()
URLSession.shared.dataTask(with: request) {data, response, err in
do {
//something
} catch let error1 as NSError {
//something
}
}.resume()
Mein setAuthorizationHeader() Erweiterung
extension URLRequest {
mutating func setAuthorizationHeader(){
let data = "user:password".data(using: String.Encoding.utf8)
let base64 = data?.base64EncodedString(options: [])
setValue("Basic \(base64)", forHTTPHeaderField: "Authorization")
}
}
Ihre String-Interpolation es wahrscheinlich um eine optionale Zeichenkette ist vorbei forHTTPHeaderField –
'versuchen, wenn base64 = Daten lassen .base64EncodedString (Optionen: []) { setValue ("Basic \ (base64)", forHTTPHeaderField: "Authorization")} ' –
@LeoDabus Es hat funktioniert! Vielen Dank. Kannst du erklären, was der Unterschied ist? Ich sehe einen Unterschied. –