ネットワーク接続または 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 の詳細な出力
< 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 移動
- 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: /
302 引っ越しました
ドキュメントはここに移動しました。* ホスト www.google.com への接続 #0 はそのまま残されています * 接続 #0 を閉じています 2013-05-04 17:19:42.183 testcurl[1468:c07] checkConnection 1: 0