UnknownHostException bei httpclient.execute(httppost)

  • Antworten:2
Gelöschter Account
  • Forum-Beiträge: 2

02.04.2012, 15:48:02 via Website

Hallöchen!

Ich bin dabei, eine App zu programmieren, mit der ich auf eine MySQL-Webdatenbank zugreifen kann! Ich benutze den Code aus diesem Tutorial von L3322 und habe ihn selbstverständlich an den entsprechenden Stellen so abgeändert, wie ich es brauche! Allerdings bekomme ich bei der Ausführung im Emulator eine Force Close-Meldung! Beim Debuggen läuft das Programm bis zu dieser Zeile:
1HttpResponse response = httpclient.execute(httppost);
Danach springt er direkt in den catch-Block! Im LogCat steht folgendes:
1Fehler bei der http Verbindung java.net.UnknownHostException: zebrahead.bplaced.net

Allerdings kommt die gleiche Meldung (nur statt zebrahead.bplaced.net eben www.google.com), wenn ich auf die Google Wetter API zugreifen will! Also wenn ich dem httppost folgende URL zuweise:
1HttpPost httppost = new HttpPost("http://www.google.com/ig/api?weather=Frankfurt&hl=de");

An meiner Internet-Adresse, auf die ich zugreifen will, (sprich: an der Adresse von meinem php-Skript) kann es also nicht liegen, wenns mit Google auch nicht klappt!

Die Internet-Permission steht da, wo sie hingehört! Nämlich im AndroidManifest.xml direkt nach dem <uses-sdk ... />-Tag!

Die Suchfunktion und Google hab ich schon durchforstet, bin aber nicht fündig geworden! Mein php-Skript funktioniert auch! Es gibt per echo im Browser genau das aus, was es soll. An den Zugriffseinstellungen auf die Datenbank kann's also auch nicht liegen.

Ich hab die App auch schon auf meinem Smartphone direkt getestet, weil ich dachte, dass es möglicherweise an meinen PC-Einstellungen (Firewall, etc.) liegt, aber da kommt ebenfalls die Force Close-Meldung...

Ich würde mich riesig freuen, wenn mir jemand weiterhelfen könnte! Vllt bin ich auch nur verdammt blind und hab irgendne Kleinigkeit übersehen!
Hier ist auf jeden Fall mal mein Code:

1private void getData() {
2
3 String ergebnis = "";
4 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
5 try {
6 HttpClient httpclient = new DefaultHttpClient();
7 HttpPost httppost = new HttpPost("hier steht meine URL");
8 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
9 HttpResponse response = httpclient.execute(httppost);
10 HttpEntity entity = response.getEntity();
11 inputStream = entity.getContent();
12 } catch (Exception e) {
13 Log.e("log_tag", "Fehler bei der http Verbindung " + e.toString());
14 }
Hier bleibt er eben in Zeile 9 hängen! getData() wird direkt zu Beginn der onCreate()-Methode aufgerufen.

Zur Vollständigkeit hier noch die Manifest-Datei:
1<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2 package="de.zebrahead.CRTdbU"
3 android:versionCode="1"
4 android:versionName="1.0" >
5
6 <uses-sdk android:minSdkVersion="4" />
7 <uses-permission android:name="android.permission.INTERNET" />
8
9 <application
10 android:icon="@drawable/ic_launcher_coffee"
11 android:label="@string/app_name" >
12
13 <activity
14
15 ...
16
17 </activity>
18 </application>
19
20</manifest>

So, ich hoffe, ich hab alles Wichtige geschrieben!
Danke schonmal für jede Hilfe! :)

Liebe Grüße
Michi

Antworten
Wolfgang S.
  • Forum-Beiträge: 32

02.04.2012, 15:59:45 via Website

Hast du schon mal versucht, im Browser des Emulators die URL aufzurufen? Vielleicht hast du beim Emulator keine Verbindung und das Force Close am Smartphone hat eine andere Ursache?

Gelöschter Account

Antworten
Gelöschter Account
  • Forum-Beiträge: 2

02.04.2012, 16:13:37 via Website

Oha! ^^
Auf die Idee bin ich noch nicht gekommen! Danke für den Hinweis!

Tatsächlich hatte ich im Emulator keine Internetverbindung! :angry:
Ich habe mich direkt schlau gemacht, wie ich das Problem beheben kann und siehe da, der Fehler, der auf dem Smartphone zur Force Close-Meldung führt, liegt nicht bei der execute()-Funktion!

Viiieeelen herzlichen Dank für deine schnelle Hilfe! <3

Antworten