HttpUrlConnectionを使用し、サーバーと美しく接続するアプリケーションに取り組んでいますが、サーバーからデータをフェッチすると、接続タイムアウトIOExceptionが表示されます。
インターネットとネットワークのアクセス許可は、android.manifestですでに設定されています。androidエミュレーターに表示されるバーはありません(これは何かを言いますか)。
developer.android.comで読んでください:エミュレーターの機能制限は次のとおりです:-ネットワーク接続状態を決定するためのサポートなし-そして他のいくつか....
どんな助けでも大歓迎です。そして、私はこれをテストするための実際のデバイスを持っていません。
受信したサーバー情報はlogcatに出力されます。
ありがとう...
コードは次のとおりです。
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
try {
Log.i(INFO_TAG, "Received server:" + conn.toString());
conn.setInstanceFollowRedirects(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-length", "0");
conn.setUseCaches(false);
conn.setAllowUserInteraction(false);
conn.setConnectTimeout(25000 /* milliseconds */);
conn.setReadTimeout(15000/* 10000 *//* milliseconds */);
// conn.setDoInput(true);
// Starts the query
conn.connect();
status = conn.getResponseCode();
Log.d(DEBUG_TAG, "Status recevied is: " + conn.getResponseCode());
responseCode = status;
if (responseCode == 200) {
Log.i(INFO_TAG, "URL Connection OK");
contentIs = conn.getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(contentIs));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
Log.i(INFO_TAG, "Data Read is: " + line);
}
} else {
Log.d(DEBUG_TAG, "Could not read data from web server");
Log.e(ConnectAndGetData.class.toString(),
"Failed to download content");
}
}// end of try
catch (Exception ex) {
// This is currently being printout
Log.d(DEBUG_TAG, "Received an exception" + ex.toString(), ex);
ex.printStackTrace();
throw new IOException("Error Connecting" + ex.toString());// "Error connecting");
} finally {
if (contentIs != null) {
contentIs.close();
conn.disconnect();
}
}
もう1つ、接続タイムアウト例外がスローされ、次の行の情報はデバッグされません。Log.d(DEBUG_TAG、 "受信したステータスは次のとおりです:" + conn.getResponseCode());