2012-08-24 33 views
5

ためAFNetworking AFHTTPClient異なるコンテンツタイプIは、要求が成功した場合は合併症成功と失敗

を持っていることは、コンテンツがJSONとして返されAFHTTPClientサブクラスを介して、Webサービスにアクセスしようとしています。なんらかの理由で失敗した場合、サーバーからのエラーはXML形式で返されます。

現時点では、私はこれに対処することができる唯一の方法は、特定のXML/JSON RequestOperationsを使用する試みではなく、すべてを純粋なHTTP要求として扱い、手動でそれを手動で解析しようとします。応答がどのように見えるかによって異なります。

悲しいことに、私はWebサービスを制御できません。または、それがすべて JSONであることを確認したいと思います。

誰もがこれを処理するためのよりよい提案をしていますか?

[EDIT]

私はわずかにクリーナーを作る1つの方法を推測は、コンテンツの検出は、内部入力取り扱うAFHTTPRequestOperationの新しいサブクラスを作成し、次に解析されたJSON又はGDataXMLオブジェクトのいずれかが戻されることになりますサーバーから返された内容に応じて変更できます。

おかげ

+0

これは私が使用したいくつかのWebサービスに似ていますが、成功した場合はJSON、失敗した場合はプレーンテキストが失敗します。あなたができることは、異なるコンテンツタイプのエラーをJSONにスローするか、特定のエラーに対してレスポンスを試してみることです。 – danielbeard

答えて

0

これはクリーンまたは最も最適なソリューションではないかもしれませんが、あなたは、応答が実際に有効なJSONで既存のJSONライブラリでチェックを行うことができます。そうであれば、通常どおり進めてください。そうでない場合は、手書きの解析ソリューションで扱います。

+0

ありがとうございます。私はそのアプローチを考えましたが、「失敗」を返すために解析することを試みるオーバーヘッドの考え方が嫌でした。私は非JSONを検出した場合、おそらく早い段階で解析を行っていると思いますので、あまりにも非効率ではありません。 –

関連する問題