Android应用连接到Web服务-无法工作

9
我正在尝试将我的应用程序连接到我在asp.net中创建的WCF服务。该服务运行在我的本地机器上: http://localhost:8080/Service.svc/ 但由于某些原因,我的Android无法连接到此http地址。
这是错误信息:
09-12 14:50:44.540: WARN/System.err(593): org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1:8080 refused
以下是我在WCF中的方法,我正在尝试返回一些值的集合。
        /// <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;
    }


这是Android中的连接方式:

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();
    }
}
1个回答

15

127.0.0.1指的是模拟器中的本地主机,而不是您的计算机。

请使用10.0.2.2来连接您的主机。

并且确保您已在AndroidManifest.xml文件中请求了INTERNET权限。


你知道如何读取已发送的数据吗? - Troj
您可以在主机上使用 WireShark 实现这个目的。 - Tim Green
嗨@TimGreen,你能解释一下为什么会发生这种情况吗?我很感兴趣! - Shrayas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接