2011-09-17 38 views
5

Mam serwer API REST Pythona uruchomiony na moim laptopie. Próbuję napisać klienta odpoczynku w systemie Android (używając Eclipse ADT itp.), Aby skontaktować się z nim za pomocą bibliotek klienta Apache (org.apache.http.client).Nie można skontaktować się z hostem (10.0.2.2) z emulatora

Kod jest bardzo prosty, a przede wszystkim wykonuje następujące -

HttpGet httpget = new HttpGet(new URI("http://10.0.2.2:8000/user?username=tim")); 
HttpResponse response = httpclient.execute(httpget); 

Jednak na wykonanie, to wyjątki na zewnątrz z wyjątkiem czasu na zewnątrz. Nie mogę trafić adresu URL nawet z przeglądarki w emulatorze.

Szczegóły wyjątkiem

org.apache.http.conn.ConnectTimeoutException: Connect to /10.0.2.2:8000 timed out 

Jednak próbowałem przy użyciu klienta grzebieniem na Chrome na moim laptopie, a ja jestem w stanie do kwerendy grzywny serwera REST.

+1

Czy byłeś w stanie to rozgryźć? Wystąpił dokładnie ten sam problem i jestem nieco utknięty, sortując go ... –

Odpowiedz

0

Czy to możliwe, że urządzenie nie znajduje się w Twojej sieci? To znaczy - jest po drugiej stronie routera, gdzieś w Internecie? Ponieważ adresy zaczynają się od "10." są zarezerwowane jako adresy prywatne i nie są routowane.

Zobacz http://en.wikipedia.org/wiki/Private_network uzyskać więcej informacji

0

miałem ten sam problem i oto jak zorientowali się przyczyny:

Quit ty emulatorze. Uruchom swój lokalny serwer. W przeglądarce powinieneś mieć dostęp do "http: // localhost: 8000/user? Username = tim" i uzyskać odpowiedź. Jeśli wystąpi przerwa, serwer prawdopodobnie nie działa. W moim przypadku mój serwer python miał ustawiony break-point i utknął tam. Kiedy pozwoliłem mu działać, mogłem zobaczyć odpowiedzi w przeglądarce, a następnie w emulatorze (używając 10.0.2.2).

Powiązane problemy