古いプロジェクトの 1 つで、DefaultHttpClient
forを使用してい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 回は正常に動作します。