全て
これはまれに発生する問題です。実際、私はそれを再現するのに多くの時間を費やさなければなりませんでしたが、とにかくここにあります.
サーバーからデータを取得するために ASIHTTPRequest を使用しています。responseStatusCode == 200 以外のエラーをスローします。私のサーバーはいくつかのメッセージを返します。
私が気付いたのは、ワイヤレス接続 (ラップトップ シミュレーターの使用時) によっては、認証が必要な場合、ASIHttpRequest が 200 の応答を返すことがありますが、responseData はサーバーからのメッセージではなく、次のようなものです。
<HTML><HEAD><TITLE>Cisco Systems Inc. Web Authentication Redirect</TITLE><META http-equiv="Cache-control" content="no-cache"><META http-equiv="Pragma" content="no-cache"><META http-equiv="Expires" content="-1"><META http-equiv="refresh" content="1; URL=https://webauth-redirect.oracle.com/login.html?redirect=17.22.111.222/scripts_dummy/messagesx.php"></HEAD></HTML>
これは正しいです?サーバーからのメッセージが受信されなかった場合、responseStatusCode が 200 以外であってはなりません。
このような状況に対処するにはどうすればよいですか?responseStatusCode == 200 を確認した後の意味では十分ではないようです。これはほんの一例です。他のワイヤレス地域では、別のガベージが出力されます。
更新 これが果たす役割があるかどうかはわかりませんが、私は持っています
request.shouldUseRFC2616RedirectBehaviour = YES; // where request is ASIHTTPRequest