无法在android设备/仿真器的localhost上发出http get请求

tvokkenx  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(405)

我做了一个测试应用程序来研究与http请求相关的问题。这是一个android应用程序,我在其中向localhost发出请求:

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
        .url("http://127.0.0.1")
        .build();

try {
    Response response = client.newCall(request).execute();
    Log.v("krv", response.toString());

} catch (Exception e) {
    Log.v("krv", e.toString());
}

结果在设备模拟器上出现“java.net.connectexception:failed to connect to/127.0.0.1:80”异常。对外部资源(如google.com)的任何其他请求都可以。我还安装了iis。操作系统是windows10。
p、 我真正需要的是——能够在运行http服务器的stb设备上发出http请求(我也有同样的问题)。我想这两个问题有相似的原因。你能给我一些建议如何解决/调试我的问题。。。

wh6knrhe

wh6knrhe1#

127.0.0.1 是localhost的环回地址。但是当你在android操作系统中时 localhost 或者 127.0.0.1 是android本身,而不是服务器运行的地方。
如果你想连接到主机,你需要找出你的主机(windows10)的ip地址并使用这个ip地址而不是其他地址 127.0.0.1 .
查看如何查找本地ip地址
但是,如果您要引用运行android仿真器的计算机,请使用ip地址 10.0.2.2 相反。

相关问题