0

基本的に、電話のインターネット/データ接続は完全に正常であるのに、アプリがサーバー/サーバーに到達できない場合にユーザーに通知しようとしています。だから私はここのこの投稿に従ってタイムアウトを設定しました:JavaでAndroidのHttpResponseタイムアウトを設定する方法

例外が正しくキャッチされた場合を除いて、Toastメッセージを表示してアプリ画面に戻る代わりに、アプリがクラッシュすることを除いて、これはうまく機能します。「Log.e( "CONNTIMEOUT"、e.toString());」に注意してください。logcatに次のように正しくログインしました:"CONN TIMEOUT org.apache.http.conn.ConnectTimeoutException:Connect to /192.168.11.60:80 timed out"

要求に応じて、完全なlogcat:http: //pastebin.com/rpe8iKRi

    // Making HTTP request
    try {

        HttpParams httpParameters = new BasicHttpParams();
        // Set the timeout in milliseconds until a connection is established.
        // The default value is zero, that means the timeout is not used. 
        int timeoutConnection = 3000;
        HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
        // Set the default socket timeout (SO_TIMEOUT) 
        // in milliseconds which is the timeout for waiting for data.
        int timeoutSocket = 5000;
        HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (ConnectTimeoutException e) {
        Toast.makeText(getApplicationContext(), "Server timeout", Toast.LENGTH_LONG).show();
        Log.e("CONN TIMEOUT", e.toString());
    } catch (SocketTimeoutException e) {
        Toast.makeText(getApplicationContext(), "Server timeout", Toast.LENGTH_LONG).show();
        Log.e("SOCK TIMEOUT", e.toString());
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        Log.e("OTHER EXCEPTIONS", e.toString());
    }
4

1 に答える 1

2

解決しました。欠落していると、関数の最後にException{がスローされます。うーん

良いヒントをありがとう@Alin。

于 2013-01-18T04:12:52.423 に答える