0

古いプロジェクトの 1 つで、DefaultHttpClientforを使用していnetworkingます。デバイスの下では正常にlollipop動作しますが、 get リクエストではメソッド呼び出しlollipopがハングします。こんな感じexecuteで作成しています。HttpClient

public static MyHttpClient createHttpClient(Context ctx) {    
        try {
            if(mgr == null){            
                SSLSocketFactory sf = SSLSocketFactory.getSocketFactory();        
                sf.setHostnameVerifier(SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);        

                httpParameters = new BasicHttpParams();        
                HttpProtocolParams.setVersion(httpParameters, HttpVersion.HTTP_1_1);        
                HttpProtocolParams.setContentCharset(httpParameters, HTTP.UTF_8);
                HttpConnectionParams.setConnectionTimeout(httpParameters, HOST_REACH_TIMEOUT); 
                HttpConnectionParams.setSoTimeout(httpParameters, HOST_REACH_TIMEOUT);

                SchemeRegistry registry = new SchemeRegistry();   
                registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));        
                registry.register(new Scheme("https", sf, 443));        

                mgr = new ThreadSafeClientConnManager(httpParameters, registry);
            }
            return new MyHttpClient(mgr, httpParameters);    
        } catch (Exception e) {        
            return new MyHttpClient(ctx);    
        }
    }

また、タイムアウトを設定しています。なぜそこでフリーズするのか、どうすれば修正できるのか、何か考えはありますか?

編集:私が見逃したもう1つのこと。同じ URL に 3 回アクセスしたときにのみ発生します。最初の 2 回は正常に動作します。

4

1 に答える 1