Alamofire
.validate()
を呼び出して自動検証を行い、ステータスコード200...299
を成功として渡します。Alamofire:障害発生時に応答データを取得する方法はありますか?
API要求が失敗した場合、サーバーはステータスコード400
と内部エラーメッセージとコードをJSONで送信し、これがどの種類のエラーであるかを識別します。
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.validate()
.responseJSON { response in
switch response.result {
case .Success:
print("Validation Successful")
case .Failure(let error):
print(error)
}
}
error
は、応答データが含まれていません:私は、ケースのステータスコードでこのJSONデータを取得する方法は、次の例ではcase .Failure
下400
で見つけることができませんでした。それを得るためにとにかくありますか?
私は以前のような問題を抱えています。これまでの方法ではサーバが実装されておらず、手作業で自分自身を検証する必要がありました。エラーがJSONのエラーに関するデータを返す可能性があります。この場合、エラーが空になる可能性があります。 –
@ VictorSigler Serverが正しく実装されています。例:ログインリクエストとしましょう。ユーザーがログインしている場合はstatusCodeは200ですが、ユーザーがログインしていない場合はstatusCodeが400でJSONレスポンスでユーザーがログインしていない理由(無効なパスワード、アカウントの期限切れなど) – Sharj
はい、上記のように、私はAlamofireの 'validate()'を使うことができないのではないかと心配しています。あなたは 'statusCode'をレスポンスに使って、この狂気のために過去のようにAPI :) –