1

物事はうまくいっていますが、その理由はわかりません。これは私を怖がらせます。

私は最近、何時間も混乱させられたスタックオーバーフローに関する別の質問をしました。そこで問題の長い説明を読むことができますが、その要点を説明します。

シンプルな Rails サーバーから JSON データを要求するシンプルな iOS プロジェクトがあります。シミュレーターからプロジェクトを実行している場合、リクエストは正常に機能しますが、デバイスから実行すると失敗し続けました。

AFNetworking クライアントのベース URL として localhost を使用して、最初の問題をすぐに発見し、代わりに自分の IP アドレスを使用してサーバーと通信できるようにしました。

GET リクエストを行うと、リクエストがサーバーにヒットし (端末ウィンドウを監視することで)、サーバーが 200 レスポンスを返していることがわかりました。このレスポンスには、リクエストされたアイテムの JSON 表現が含まれている必要があります。ただし、AFNetworking -getPath:parameters:success:failure メソッドは毎回失敗していました。応答を調べて、それがタイプ 200 であることを確認できました。失敗した要求 (422 など) を JSON エラーでシミュレートすると、エラー メッセージを確認できました。

私の質問への回答によると、返された JSON が有効ではない可能性があり、リクエストが失敗する可能性があります。

今奇妙な部分:

私は何時間もつまずき、レール サーバーを使用して AFNetworking を使用して JSON 応答を取得するプロジェクトを見つけました。私はそれを自分のプロジェクトと比較しましたが、AFNetworking に関して言えば、この 2 つは本質的に同じです。次に、Rails サーバーを調べました。ここにキッカーがあります。私が見つけた唯一の違いは、「Thin」gem の使用です。gem をインストールしたところ、リクエストが正常に完了し、JSON データが返されました。

RailsサーバーにWEBrickではなくThinを使用すると、JSONデータがデバイスに正常に返される理由について、誰か洞察を提供できますか?

4

0 に答える 0