2

ネットワーク接続または iOS アプリをチェックするために、次の簡単なコードを書きました。

int CL_Network::checkConnectionInt1(){

  CURL *curl;
  CURLcode res;
  curl = curl_easy_init();

  if (curl) {

    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");

    res = curl_easy_perform(curl);

    curl_easy_cleanup(curl);
    return res;

  }

  curl_easy_cleanup(curl);
  return -1;

}

私たちのテストは問題なく、Wi-Fi が有効な場合は 0 を返しますが、Apple レビュアーは Wi-Fi が有効または無効の場合に 23 (CURL_WRITE_ERROR) を返します。

レビュアーは、他の奇妙な動作を教えてくれます(Wi-Fiが有効になっていることを考慮して)

  • iOS 5.1 を搭載した iPod touch は 0 を返し、iOS 6.3 を搭載した iPhone5 が 23 を返すのと同じ Wi-Fi を使用します。
  • iOS 6.3 を搭載した iPhone 5 でステップバイステップ デバッグを実行すると 0 が返されます (1 回だけ発生するのか、常に発生するのかはわかりません)。

何か提案はありますか?

最後に、curl_easy_perform の詳細な出力

  • connect() を www.google.com ポート 80 (#0) にしようとしています
  • 173.194.35.20 を試しています...
  • 接続済み
  • www.google.com (173.194.35.20) ポート 80 (#0) に接続

    GET / HTTP/1.1 ホスト: www.google.com Accept: /

< HTTP/1.1 302 Found < Location: http://www.google.it/ < Cache-Control: private < Content-Type: text/html; charset=UTF-8 < Set-Cookie: PREF=ID=08f8ea131f5d39dd:FF=0:TM=1367680782:LM=1367680782:S=at5IyKNTpeoFFnif; expires=Mon, 04-May-2015 15:19:42 GMT; パス=/; domain=.google.com < Set-Cookie: NID=67=uPKHTXNtVuYy4QOwVHstK4NzMGZcDssYW.....; expires=Sun, 03-Nov-2013 15:19:42 GMT; パス=/; ドメイン=.google.com; HttpOnly < P3P: CP="これは P3P ポリシーではありません! 詳しくは http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 をご覧ください。" < Date: Sat, 04 May 2013 15:19:42 GMT < Server: gws < Content-Length: 218 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < 302 移動

302 引っ越しました

ドキュメントはここに移動しました。* ホスト www.google.com への接続 #0 はそのまま残されています * 接続 #0 を閉じています 2013-05-04 17:19:42.183 testcurl[1468:c07] checkConnection 1: 0

4

1 に答える 1