2016-09-05 10 views
4

私が扱っているAPIは、要求が失敗したときに応答本体にエラーメッセージを送信することがあります。これはresponse.dataにあります。時にはそれはJSONです。時には文字列です。私はvalidateメソッドを使用していますので、エラーが発生した場合result.valuenilです。Alamofireの解析応答データの検証に失敗した場合

AlamofireがNSDataから文字列にデータをシリアル化する方法がありますか、または応答が成功した場合のようにJSONを[ String : AnyObject ]にシリアル化する方法はありますか?

私はvalidateメソッドを使いたいと思います。

編集: 私はAlamofire GitHubプロジェクトを開始しました。

https://github.com/Alamofire/Alamofire/issues/1459

答えて

3

は現在ありません。私は実際に今Alamofire 4のこの非常に機能に取り組んでいます。 Alamofire 3では、検証エラーが発生した場合はresponse.dataを解析する必要があります。 Alamofire 4では、検証時に少なくともresponse.dataにアクセスできるだけでなく、検証によって生成されたErrorをカスタマイズできるようになります。

最終的な解決策は、エラー(応答ステータスコードとヘッダーの確認)が発生することがわかっている場合に検証をチェックする機能です。次に、エラーの種類に基づいて、response.dataを解析してサーバーからエラーメッセージを抽出し、検証から非常に特殊なエラーをスローすることができます。これは、新しいシステムで可能になる可能性が高いです。こうすることで、検証時にOAuth2アクセストークンエラーを識別し、応答シリアライザの複雑なシステムを使用せずに独自のカスタムエラーをスローすることができます。

+0

ありがとうございます!検証が失敗してもシリアライザを使用するようにデータを要求することを容易にする機能要求を入れます。 – Tobias

関連する問題