Android 3.1에 앱을 쓰고 있으며 Galaxy 탭 10.1을 사용하여 앱을 테스트하고 있습니다.HttpUrlConnection을 사용하여 특정 URL에서 정보를 다운로드 할 때 오류가 발생했습니다.
특정 웹 사이트에서 일부 정보를 얻으려면 OpenHttpConnection()이라는 함수를 작성했습니다. 그리고 코드 조각은 다음과 같습니다 라인 "httpConn.connect()가"실행되고있을 때
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;
}
오류가 발생합니다. 나는이 질문을봤을 때 많은 사람들이이 문제를 겪고 있으며 DNS 문제라고 말했다. 그런 다음이 URL의 IP 주소를 가져 오려고했는데 실패했습니다. 일이 잘못되었습니다. 나는 이미이 같은의 AndroidManifest.xml에 권한을 추가 한 :
<uses-permission android:name="android.permission.INTERNET"/>
내가 어떤 권한을 그리워 했습니까?
태블릿을 사용하여 인터넷에 성공적으로 액세스 할 수 있으며 태블릿의 DNS는 내 PC와 동일하며 하나의 LAN에 있습니다.
저는 매우 혼란스럽고 해결할 수 있습니까?
) 나는 아마이 가능한 문제가 있음을 말할 수 있도록 최근에이 일을 했어요
답변을 위해 OpenHttpConnection 또는 Logcat –
게시 URL을 설명해주세요.하지만 도움이되지는 않습니다. 내 문제는 응용 프로그램이 올바른 IP 주소를 얻기 위해 DNS를 사용할 수 없다는 것입니다. 그리고이 코드와 작업을 Android 태블릿 시작 응용 프로그램 개발이라는 책에서 복사했지만 Handler 또는 AsyncTask는 언급하지 않았습니다. 어쨌든 Thx. –