У меня есть код HTTP в контроллере AngularJS:
$http.post('/api/users/authenticate', {email: $scope.email, password: $scope.password})
.success(function (data, status, headers, config) {
authService.login($scope.email);
$state.go('home');
})
.error(function (data, status, headers, config) {
$scope.errorMessages = data;
$scope.password = "";
});
В случае успеха сервер будет отвечать представлением пользователя JSON. В случае ошибки сервер ответит простой строкой, такой как User not found
, к которой можно получить доступ через параметр data
.
Мне сложно понять, как сделать что-то подобное в Alamofire. Вот что я имею прямо сейчас:
@IBAction func LoginPressed(sender: AnyObject) {
let params: Dictionary<String,AnyObject> = ["email": emailField.text, "password": passwordField.text]
Alamofire.request(.POST, "http://localhost:3000/api/users/authenticate", parameters: params)
.responseJSON {(request, response, data, error) in
if error == nil {
dispatch_async(dispatch_get_main_queue(), {
let welcome = self.storyboard?.instantiateViewControllerWithIdentifier("login") as UINavigationController;
self.presentViewController(welcome, animated: true, completion: nil);
})
}
else{
dispatch_async(dispatch_get_main_queue(), {
// I want to set the error label to the simple message which I know the server will return
self.errorLabel.text = "something went wrong"
});
}
}
}
Я понятия не имею, правильно ли я правильно обрабатываю случай без ошибок, и также хотел бы получить информацию об этом.