2011-11-09 11 views
3

こんにちは私は、次のコードを使用してURL接続を確立しています。しかしランダムに私はresponseCode -1(responseCodeのデフォルト値)を取得します:HttpURLConnectionレスポンスコードはランダムに-1

try { 
     URL url = new URL(urlString); 

     HttpURLConnection httpconn = (HttpURLConnection) url.openConnection(); 

     if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) { 
      handleData(new DataInputStream(httpconn.getInputStream()), requestCode); 
     } else { 
      Log.e(TAG, "HttpConnection not OK: " + httpconn.getResponseCode()); 
      ActivityHelper.httpError(this); 
     } 
     httpconn.disconnect(); 
    } catch (Exception e) { 
     Log.e(TAG, "handleHttpConnection", e); 
     ActivityHelper.httpError(this); 
    } 

私は何か間違っていますか?これは、10回の試行のうちの9回で完璧に動作するためです。

+2

私は 'url.openConnection()'が必ずしも基本的なhttp接続を開く時間がないと思っています。それを開いた後、 'httpconn.connect()'を追加することができます。応答コードをチェックする前に移動できる 'httpconn.getInputStream()'を呼び出すと、応答コードは最後に設定されるべきです。 – harism

答えて

3

UrlConnectionはバグです。

1つの問題の前のジンジャーブレッドの回避策については、公式のAndroid開発者のブログからthisブログポストを参照してください。

私の提案は、使用しないでください。私は3.2でまだ薄れていた。私はHttpClientに切り替えて、状況はそれほど悪くありませんでした。

+0

誰もがこれに関するアップデートを持っていますか、4.xプラットフォームのフレークさの確認はありますか? – Shellum

関連する問題