2016-08-09 5 views
2

Ich habe eine Locke Anfrage so aufgebaut:Swift convert cURL -user Schlüssel JSon für AFNetworking

curl -X POST http://host.com \ 
    --data token=myToken \ 
    --data foo=myFoo \ 
    --user myUsername:myPassword 

I die Datenparameter Struktur:

let params = ["token" : myToken, "foo" : myFoo] 

Dann mit AFNetworking POST.

manager.POST("http://host.com", parameters: params, progress: nil, success: { task, responseObject in 
     //stuff 
     }, failure: { operation, error in 
     //error stuff  
    }) 

Aber wie kann ich die notwendigen Parameter aus der cURL --user Schlüssel zu dieser Anfrage hinzufügen?

Antwort

1

Gelernt etwas, -u oder --user ist das gleiche wie Basic Auth. Und Sie können den Benutzernamen und das Passwort über einen Autorisierungs-Header wie folgt weitergeben, wobei base64Encode() meine eigene String-Erweiterung ist, die in base64 konvertiert werden soll.

Die vollständige Umwandlung für:

curl -X POST http://host.com \ 
--data token=myToken \ 
--data foo=myFoo \ 
--user myUsername:myPassword 

möchte so sein:

let params = ["token" : myToken, "foo" : myFoo] 

if let base64 = "myUsername:myPassword".base64Encode() { 

    manager.requestSerializer.setValue("Basic " + base64, forHTTPHeaderField: "Authorization") 

    manager.POST("http://host.com", parameters: params, progress: nil, success: { task, responseObject in 
     //stuff 
     }, failure: { operation, error in 
      //error stuff 
    }) 
}