HttpClient timout

GENiALi

GENiALi

Fortgeschrittenes Mitglied
11
Hallo

Ich entwickle hier einen REST JSON Service. REST JSON mit .NET, Client ist Android.
Ich habe eine URL die wunderbar funktioniert. Wenn ich die unter Windows im Browser ausführe bekomme ich ein JSON zurück.

Wenn ich die selbe URL mit Android ansteure bekomme ich IMMER ein Timeout. Mit dem Android bin ich via WLAN im Firmennetz. Mit einem Windows Laptop und dem selben WLAN bekomme ich auch ein JSON. Nur mit dem Android nicht. Egal ob im Code oder mit dem Android Browser. Was kann man überhaupt falsch machen?
Den Server erreiche ich, jedenfalls sagt mir dass das Ping auf dem Android. :)

Zugreifen tue ich mit der IP, nicht mit dem Namen. htt://192.168.1.111/LoginService/Authenticate?username=TEST&password=75fe41b978ed63f28839857d0d4d4155

Die Loginmethode läuft nicht in einer Activity sondern in einem Thread den ich mit new Thread() und run() aus der Activity raus gestartet habe.

Timeout ist auf 90 Seknden gestellt, es macht aber immer nach 10 Sekunden boom.

Wie so immer die Timeouts?

Code für die Abfrage:
Code:
public static User login(final String unsername, final String password)
{
    String baseUrl = Pref.getInstance(Pit.getContext()).getBaseUrl();
    int timeout = Pref.getInstance(Pit.getContext()).getLoginTimeout();

    baseUrl = getBaseUrl(baseUrl, unsername, password);

    HttpParams httpParameters = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParameters, timeout * 1000);
    HttpConnectionParams.setSoTimeout(httpParameters, timeout * 1000);

    HttpClient httpClient = new DefaultHttpClient(httpParameters);
    HttpGet httpGet = new HttpGet(baseUrl);

    HttpResponse response;

    try
    {
        response = httpClient.execute(httpGet);

        HttpEntity entity = response.getEntity();

        InputStream instream = entity.getContent();

        BufferedReader reader = new BufferedReader(new InputStreamReader(instream));

        StringBuilder sb = new StringBuilder();

        String line = null;

        while ((line = reader.readLine()) != null)
        {
            sb.append(line + "n");
        }

        String result = sb.toString();

        Log.i(TAG, result);

        instream.close();

    }
    catch (ClientProtocolException ex)
    {
        Log.e(TAG, "ClientProtocolException", ex);
    }
    catch (IOException ex)
    {
        Log.e(TAG, "IOException", ex);
    }
    catch (Exception ex)
    {
        Log.e(TAG, "Exception", ex);
    }
    finally
    {
        httpGet.abort();
    }

    return null;
}
 
p bei http vergessen?

ansonsten sieht es eigentlich gut aus.

Du solltest vielleicht den respondecode auslesen ob der 200 ist.
 
Jetzt bakam ich schon Herzrasen. Ob das wirklich der Fehler war? Ne, war es nicht. Url sieht so aus.
http://192.168.1.111/LoginService/A...EST&password=75fe41b978ed63f28839857d0d4d4155

Das mit dem Code mache ich gleich noch. Nur, einen solchen Code kann ich doch erst nach dem httpClient.execute(httpGet) ausführen. Oder? Leider gibt es kein danach. Weil genau dort liegt mein Problem.

Der ursprüngliche Beitrag von 16:08 Uhr wurde um 16:12 Uhr ergänzt:

Komme tatsächlich nie zu einem gültigen response umd den Status abzufragen.
 
Hast du auch die Internetrechte im Manifest gesetzt?

Ansonsten mal die LogCat incl. des Stacktraces der Exception posten.
 
OK. Es liegt definitiv nicht am Code. Ich habe als Jux mal die URL meines Blogs rein getan. Siehe da, bekomme eine Antwort. Also muss es wohl am Webserver meines PC's liegen. Nur, wie so bekommen dann die andern PC's im Netz eine Antwort? Nur ich nicht? hmmm

Der ursprüngliche Beitrag von 16:16 Uhr wurde um 16:20 Uhr ergänzt:

Problem gelöst.
Grund war, dass sich mein Android immer wieder, unbemerkt von mir, mit einem anderen WLAN verbunden hatte. Jetzt habe ich das WLAN gelöscht, das Böse, und nun bekomme ich wunderbar eine JSON Antwort.

Danke für die Hilfe. Auf zum nächsten Problem.
 

Ähnliche Themen

J
  • jameslover2014
Antworten
4
Aufrufe
1.068
markus.tullius
markus.tullius
S
Antworten
10
Aufrufe
2.693
killphil75
killphil75
P
Antworten
5
Aufrufe
930
DieGoldeneMitte
DieGoldeneMitte
Zurück
Oben Unten