如何用localhost链接替换? Android的

时间:2012-03-22 03:59:35

标签: android http localhost

我正在解析xml文件 其中一种方法如下:

public static String getXML(){   
        String line = null;

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost("http://p-xr.com/xml/");

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            line = EntityUtils.toString(httpEntity);

        } catch (UnsupportedEncodingException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        } catch (MalformedURLException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        } catch (IOException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        }

        return line;

}

在这里,我想替换

HttpPost httpPost = new HttpPost("http://p-xr.com/xml/");

通过

HttpPost httpPost = new HttpPost("http://127.0.0.1/myfile.xml");

我可以在浏览器中浏览http://127.0.0.1/myfile.xml。 但是当我将这个地址写入上面的代码时,它就会起作用。 为什么? 我的项目需要http方法来访问xml文件。

4 个答案:

答案 0 :(得分:2)

在模拟器中,localhost是模拟器本身而不是运行模拟器的系统。所以它不会起作用。

改用10.0.2.2。

答案 1 :(得分:1)

在这种情况下使用10.0.2.2,请查看Emulator Networking

答案 2 :(得分:1)

在模拟器中,有一些特殊定义的地址别名用于访问模拟器本身之外的网络。

要在运行模拟器的系统(即主机系统)上访问localhost,请使用10.0.2.2

参考此处:

http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking

答案 3 :(得分:1)

如果您想使用Android设备执行此操作:

您可以在Mac或Linux上使用ifconfig或在Windows上使用ipconfig来查找计算机的IP地址。

然后你可以用那个IP地址替换p-xr.com / 127.0.0.1。

您需要确保没有在计算机上设置防火墙,如果是这样,您必须允许访问Android设备才能联系本地HTTP服务器。