Dimitri T Dimitri T - 29 days ago 7
Swift Question

swift error "Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1."

I am having trouble fixing this error message on my Swift Alamofire POST request (to login a user).


'3840' "Invalid value around character 1."


I have imported Foundation, Alamofire, SwiftyJson. There are no authorisation restrictions (no Oauth etc). I'm also getting the same error message when I change the Post (eg to another endpoint, with other parameters and values) but keep the rest of the code/format the same. On my drupal7 REST server 'definitions' it lists the endpoint as /rest/user/login and parameters as 'username' and 'password' strings as I've used.

I'd really appreciate any tips and help?


error calling REQUEST
Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1." UserInfo={NSDebugDescription=Invalid value around character 1.}


This is my code

@IBAction func loginButtonTapped(sender: AnyObject) {

//using Alamofire

let dataEndpoint: String = "https://www.example.com/rest/user/login"
let newData = ["username":"Mickey", "password":"123"]
Alamofire.request(.POST, dataEndpoint, parameters: newData, encoding: .JSON)
.responseJSON { response in
guard response.result.error == nil else {
// got an error in posting the data, need to handle it
print("error calling REQUEST")
print(response.result.error!)
return
}

guard let value = response.result.value else {
print("no result data when calling request")
return
}
let data = JSON(value)
print("The result is: " + data.description)
}

}


Thank you

Answer

Adding .json at the end of the URL endpoint has solved the error. ie https://www.example.com/rest/user/login.json