0

これまで、HTTPPOSTリクエストに問題はありませんでした。

try {
        DefaultHttpClient client = new DefaultHttpClient();
        HttpParams params = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(params, 1000);
        client.setParams(params);
        HttpPost post = new HttpPost(NETWORK_CHECK_CONTROLLER_ADDRESS);
        ResponseHandler<String> handler = new BasicResponseHandler();
        HttpResponse response = client.execute(post);// here in 4.0
        String responseString = handler.handleResponse(response);
        JSONObject json = new JSONObject(responseString);
    } catch (Exception e) {

        logReporter.add("Could not connect to controller");
        Log.d("4.0 tests",e.getCause()+" ");
        return false;
    }

    return true;

マニフェストで指定されているように、APIバージョン8をターゲットにしていたときに、この要求が失敗したり、例外がスローされたりすることはありませんでした。

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

以前は

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="8" />

これで、POSTリクエストは毎回失敗し、例外メッセージは常にNullになります。投稿リクエストに関して、Android API 8と15の違いは何ですか?

はい、POST先のサーバーはオンラインであると確信しています。API 8に戻すと、すべて問題ありません。

4

3 に答える 3

2

UIスレッドから投稿しているのでしょうか?この場合、Gingerbreadから例外がスローされます。

于 2012-07-17T13:59:16.387 に答える
0

4.0以降のバージョンを使用している場合は、別のスレッドでHTTPリクエストを呼び出す必要があります。

于 2013-01-15T04:43:27.603 に答える
0

問題は、メインUIスレッドでネットワークアクセスを実行していることです。NetworkAccessOnMainThreadAndroid 3.0以降では、メインスレッドでHTTPリクエストを実行しようとすると、アプリケーションがクラッシュします(つまり、システムが例外をスローします)。UIスレッドをブロックしないようにするには、HTTPリクエストをAsyncTask(またはある種の)でラップする必要があります。Thread

このテーマに関する私のブログ投稿を読んでください:

アイスクリームサンドイッチがアプリをクラッシュさせる理由

于 2012-07-17T14:27:30.363 に答える