Ich schreibe eine App auf Android 3.1, und ich verwende Galaxy Tab 10.1, um meine App zu testen.Fehler bei der Verwendung von HttpUrlConnection zum Herunterladen von Informationen aus einer bestimmten URL
Ich schrieb eine Funktion namens OpenHttpConnection(), um einige Informationen von einer bestimmten Website zu erhalten. Und der Code-Schnipsel ist:
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;
}
Fehler treten auf, wenn die Zeile "httpConn.connect()" ausgeführt wird. Ich habe diese Frage gegoogelt und festgestellt, dass viele Leute dieses Problem haben, und sie sagten, es sei eine Frage von DNS. Dann habe ich versucht, die IP-Adresse dieser URL zu bekommen, ich scheiterte, etwas war falsch. Ich habe bereits die Erlaubnis zur AndroidManifest.xml wie folgt hinzugefügt:
<uses-permission android:name="android.permission.INTERNET"/>
Habe ich etwas Erlaubnis verfehlt?
Ich kann mein Tablet verwenden, um erfolgreich auf das Internet zuzugreifen und das DNS meines Tablets ist dasselbe wie mein PC, und sie sind in einem LAN.
Ich bin sehr verwirrt, und können Sie helfen, es zu lösen?
;) thx
Bitte beschreiben Sie den Fehler (überprüfen Sie Logcat) –
Post-URL, die Sie in OpenHttpConnection oder Logcat –