ついんむーん

iOS開発 / 主婦で産休中 /

NSURLConnectionでonSuccessに来るけどデータが受け取れなくてハマった話

この間

アプリがサーバに渡すデータをjsonで作成し、サーバに通信するとonSucceed(通信成功)するけど

サーバから受け取ったjsonが不正だというエラーがでていた

ちょうどiOS9ビルドに切り替えたタイミングだったのでアプリ側にミスがあるだろうと思っていた

具体的にはこんな感じ(超うろ覚え)

- (void) sendMethod {
    [myClass send:url
                    data:json
         onSuccess:onSuccess
            onFailure:onFailure];
}

- (void) onSuccess:(id) data {
     if ( !data ){
           NSLog(@"データなし");
     }  
}

調べた方法は下記

  • 送信しているjsonの型は正しいのか?(jsonチェッカーなどで調査)

    • 問題なし
  • 送信しているjsonに入れているデータは仕様書で使用してはいけない文字を使っていないか?

    • 問題なし
  • (サーバが2台あるので)リリース向けサーバとテスト向けサーバで同様の事象が起こっていないか

    • リリース向けサーバのみで起こっていた
  • サーバにアクセスが行っているか

    • 来ていた
  • 受け取ったjsonのfremworkが古すぎるのか?

    • 古かった。入れ替えてもいいが最後の手段にした
  • ATS対応漏れをを疑った

    • 正常
  • iOS8ビルドに戻した

    • できない

あれ、とここで気づいた

今まで動いていたはずの物が今は動いていない

しかもコードに変更は入れていない

やっとここでサーバに問題があることに気づいた

よくよく考えたらサーバが500エラーを返していた。

そういえばonSuccessってエラーを返してもonSuccessに入るんだった。。。

これって切り分ける方法ってないんですかね。。