java.net.HttpURLConnection
を作成し、接続タイムアウトを設定してもconnection.connect()
にハングアップします。 "b4 connect"はログに記録され、 "after connect"はログに記録されません。私はAPI 21以上でテストしましたが、問題はありますが、API 16-19のテストでこの問題が発生します。以下は私のコードです。リクエストはhttpsを使用しており、バックエンドは標準のnginx https設定を使用しています。接続タイムアウトを設定しても、HTTPS要求が20未満のAndroid APIでハングする
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
try {
connection.setRequestMethod("GET");
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36");
connection.setConnectTimeout('\uea60');
connection.setReadTimeout('\uea60');
connection.setInstanceFollowRedirects(false);
Log.d(TAG, "b4 connect");
connection.connect();
Log.d(TAG, "after connect");
if(connection.getResponseCode() == 200) {
return IOUtils.toString(connection.getInputStream(), "UTF-8");
}
} catch (Exception var) {
throw new Exception(var.getMessage());
} finally {
connection.disconnect();
}
return null;
URLが「https」の場合は、代わりに「HttpsURLConnection」を使用します。 –
いいですが、私はそれを試みましたが、私はまだこの問題があります。 – user299648
これを試すhttp://stackoverflow.com/a/8655039/2311117 – Shivansh