我做了一个测试应用程序来研究与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请求(我也有同样的问题)。我想这两个问题有相似的原因。你能给我一些建议如何解决/调试我的问题。。。
1条答案
按热度按时间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
相反。