Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android app connecting to a webservice - not working

Tags:

java

c#

android

wcf

Iam trying to connect my App to a WCF service that I created in asp.net. The service runs on my localmachine: http://localhost:8080/Service.svc/

But for some reasons my Android can not connect to this http-adress.

This is the error:

09-12 14:50:44.540: WARN/System.err(593): org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1:8080 refused
this is the method in wcf, Iam trying to return a collection with some values.

        /// <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;
    }


And this is how the connection in the android looks like:

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();
    }
}
like image 718
Troj Avatar asked Sep 12 '10 16:09

Troj


1 Answers

127.0.0.1 refers to localhost in the Emulator, not your machine.

Use 10.0.2.2 to connect to your host machine.

Do also make sure you have requested the INTERNET permission in your AndroidManifest.xml

like image 114
Tim Green Avatar answered Nov 07 '22 10:11

Tim Green