Ich habe den folgenden funktionierenden Curl-Befehl, den ich in Swift mit Alamofire ausführen muss.CURL-Befehl in Alamofire mit swift
curl -k -i -d '{ "user": {"displayName":"My Test" ,"email":"[email protected]","pwd":"test","roles":["stu"]}}' -H "Content-Type: application/json;charset=UTF-8" -u web:web -X POST 'https://test.herokuapp.com/xtest/auth/register'
ich versuchte, das folgende Verfahren mit Swift geführt durch Alamofire verwenden. Ich habe den Eindruck, dass ich -u web: web falsch mache, aber ich habe keine Möglichkeit, das zu bestätigen. Die Konsole gibt mir die folgende Fehlermeldung, die ich nicht verstehe:
print response object
nil
print error
Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.})
Kann jemand darauf hinweisen, was hier falsch ist? Danke.
Dies ist die Funktion, die den CURL Befehl in Swift
func registerNewStudent(displayName: String, email: String, password: String, completionHandler: (AnyObject?, NSError?) ->()) {
//Basic HTTP auth
let user = "web"
let password = "web"
let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": "Basic \(base64Credentials)"]
//example for a nested array query
let parameters = [
"user": [
"displayName": displayName,
"email": email,
"pwd": password,
"roles":["stu"]
]
]
Alamofire.request(
.POST,
registerURL,
headers: headers,
parameters: parameters
)
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
}
Ich nenne diese Funktion in der folgenden Art und Weise übersetzt:
func okButtonTapped(sender: UIButton) {
let displayNameText = displayNameInput.text
let emailText = emailInput.text
let passwordText = passwordInput.text
restApi.registerNewStudent(displayNameText!,emailInput: emailText!, passwordInput: passwordText!) {responseObject, error in
// use responseObject and error here
print("print response object")
print(responseObject)
print("print error")
print(error)
}
Antwort vom CURL Aufruf:
{"result":{"email":"[email protected]","display_name":"My Test","pwd":"test","fb_id":null,"roles":["stu"]