Alamofire.request(URL, method: Endpoints.login.method, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.validate()
.responseObject { [weak self] (response: DataResponse<User>) in
switch response.result {
case .success(let user):
cb(.success(user))
case .failure(let error):
log.error(error)
cb(.failure(error))
}
}
誤ったパスワードを入力した場合、apiが私に送信している正確なエラーメッセージを印刷できません。Alamofire/AlamofireObjectMapper - responseObjectからエラーjsonを出力するにはどうすればよいですか?
po error.localizedDescription
私はいつもalamofireすなわち "Response status code was unacceptable: 401.
" からデフォルトのメッセージを取得しています。 Invalid username and password
のような動的エラーメッセージが表示されます。
ところで私は
.responseJSON { response in
if response.response?.statusCode == 200 {
print("Success with JSON: \(response.result.value)")
}
else {
let error = response.result.value as! NSDictionary
let errorMessage = error.object(forKey: "message") as! String
print(errorMessage)
}
を使用して、動的エラーメッセージを印刷するresponseJsonを使用することができますしかし、私はresponseObject
と同じことを行う必要がありますか?
アップデート1から
パラメータ
let parameters = [
"username": userName,
"password": password
]
応答
Login Response: {
error = {
};
message = "401 - {\"success\":false,\"message\":\"Invalid user/pass\"}";
}
あなたのAPIの回答を教えてもらえますか?ヘッダだけでなく、いくつかのAPI開発者がヘッダレスポンスにエラーを置くようにします。 – Glenn
@Glenn - ヘッダーはゼロです。私はパラメータとAPIの応答で私の質問を更新しました。だから、私が.validate()を削除すると成功例に行き、私はresponse.result.valueでエラー応答を見ることができます。しかし、私が.validate()を追加すると、予想される失敗の場合がありますが、サーバーから送信されたエラー応答を出力できません。 – Tariq
@タリックこんにちは私は、このエラー応答を探す場所を教えてくれる、これに対する答えを追加しました。私はAlamofireを使っている間に同様の問題を抱えていました。この問題をどうやって解決したのですか? –