私はアンドロイド3.1にアプリケーションを作成しています。アプリケーションをテストするために銀河タブ10.1を使用しています。HttpUrlConnectionを使用して特定のURLから情報をダウンロードするとエラーが発生する
OpenHttpConnection()という関数を書いて、特定のWebサイトから情報を取得しました。コードスニペットは次のとおりです。
private InputStream OpenHttpConnection(String urlString) throws IOException {
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
String host = url.getHost();
InetAddress address = InetAddress.getByName(host);
String ip = address.getHostAddress();
Toast.makeText(this, "ip address: " + ip.toString(), Toast.LENGTH_SHORT).show();
try {
HttpURLConnection httpConn = (HttpURLConnection)url.openConnection();
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setConnectTimeout(5 * 1000);
httpConn.setRequestMethod("GET");
Toast.makeText(this, "prepare for connecting", Toast.LENGTH_SHORT).show();
httpConn.connect();
Toast.makeText(this, "connecting established", Toast.LENGTH_SHORT).show();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
} catch (Exception ex) {
throw new IOException("Error connecting");
}
return in;
}
"httpConn.connect()"という行が実行されているときにエラーが発生します。私はこの質問を見つけ、多くの人々がこの問題を抱えていることを知り、彼らはDNSの問題だと言いました。それから私はこのURLのIPアドレスを取得しようとしたが、失敗した、何かが間違っていた。私はすでにこのようにAndroidManifest.xmlにアクセス許可を追加しています:
<uses-permission android:name="android.permission.INTERNET"/>
私はいくつかの許可を忘れましたか?
タブレットを使用してインターネットに正常にアクセスできます。タブレットのDNSはパソコンと同じで、1つのLANにあります。
私は非常に混乱しており、解決するのに役立ちますか?
;)THX
答えをOpenHttpConnectionまたはLogcat –
投稿urlを記述してください。しかし、私にとっては役に立たないと思います。私の問題は、アプリケーションが正しいIPアドレスを取得するためにDNSを使用することができないということです。そして、このコードと操作を「Androidタブレットアプリケーション開発の開始」という書籍からコピーしますが、HandlerやAsyncTaskについては言及していません。とにかくThx。 –