0

データベースにエントリを入れようとしています。これは私が使用しているコードです

String url = String.format("http://xxxxxxx/xxx/index.php?home=yes&pid=%s", pid);

        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);

    try {
        ResponseHandler<String> responseHandler = new BasicResponseHandler();
        String response = httpclient.execute(httppost, responseHandler);

        Log.e("abc", response);
        return response;
        } catch (ClientProtocolException es) 
        {   
            Log.e("x" , es.getMessage());
            return "";
        } catch (IOException e) 
        {
            Log.e("aasx" , e.getMessage());
            return "";
        }

このコードは正常に機能します。これで、インターネット接続の問題が発生すると、コードが httpclient.execute(httppost, responseHandler);2分以上スタックしました。

ほんの数秒間チェックし、応答がない場合は、それをチェックする方法はありますcatch the exceptionsか?

4

2 に答える 2

1

あなたの質問はここの質問に似ています

そこにある回答に示されているように、HttpClientのタイムアウトを設定する必要があります。これは、HttpParamsオブジェクトをHttpClientコンストラクターに渡すことで実行できます。

于 2012-10-12T14:37:29.280 に答える
0

私はJavaにあまり精通していませんが、Actionscript 3で同様のことを行う場合、一定の時間が経過すると試行を停止するために通常HTTPリクエストに設定できるタイムアウト数があります。すぐに返されるはずのリクエストの場合、通常これを15〜30秒に設定します。

于 2012-10-12T14:35:05.967 に答える