2010-09-12 15 views
9

Próbuję połączyć moją aplikację z usługą WCF, którą utworzyłem w asp.net. Usługa działa na moim komputerze lokalnym: http://localhost:8080/Service.svc/Aplikacja na Androida łącząca się z serwisem internetowym - nie działa

Jednak z pewnych przyczyn mój Android nie może się połączyć z tym adresem http.

to błąd:

12/09 14: 50: 44,540: OSTRZEGAJ/System.err (593) org.apache.http.conn.HttpHostConnectException: Połączenie http://127.0.0.1:8080 odmówił
jest metoda w wcf, próbuję zwrócić kolekcję z pewnymi wartościami.

 /// <returns>An enumeration of the (id, item) pairs. Returns null if no items are present</returns> 
    protected override IEnumerable<KeyValuePair<string, SampleItem>> OnGetItems() 
    { 
     // TODO: Change the sample implementation here 
     if (items.Count == 0) 
     { 
      items.Add("A", new SampleItem() { Value = "A" }); 
      items.Add("B", new SampleItem() { Value = "B" }); 
      items.Add("C", new SampleItem() { Value = "C" }); 
     } 
     return this.items; 
    } 


I to jest jak gra w Androidzie wygląda następująco:

public void getData(String url) 
{ 
    HttpClient httpClient = new DefaultHttpClient(); 
    HttpGet httpGet = new HttpGet(url); 
    HttpResponse response; 

    try 
    { 
     response = httpClient.execute(httpGet); 
     Log.i(TAG,response.getStatusLine().toString()); 
} catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }/* catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } */catch (Exception e){ 
     e.printStackTrace(); 
    }finally{ 
     httpGet.abort(); 
    } 
} 

Odpowiedz

15

127.0.0.1 dotyczy localhost w emulatorze, a nie komputer.

Użyj 10.0.2.2, aby połączyć się z komputerem głównym.

również należy upewnić się, że o pozwolenie INTERNET w AndroidManifest.xml

+0

dzięki Udało się, – Troj

+0

wiesz, jak to jest możliwe do odczytu danych, który został wysłany? – Troj

+0

Możesz użyć WireShark na hoście do tego celu. –

Powiązane problemy