我正试图通过php脚本从MySQL数据库中获取一些数据。 我的代码是: `
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://example.com/fscript.php");
HttpResponse response= null;
System.out.println(httpget.toString());
try{
response= httpclient.execute(httpget);
}catch(Exception e){
e.printStackTrace();
}
我总是在LogCat和StackTrace中得到超时:
java.net.SocketException: The operation timed out
当我使用相同的代码但指向http://10.0.2.2:90/fscript.php,我在开发机器中的服务器时,它工作正常,所以我认为是与远程服务器相关的东西。 当我在浏览器中写入地址时,它返回我的脚本返回的json字符串,所以我猜问题不是php。 在我的清单中,我在应用程序中拥有Internet权限,是否还需要其他内容? 或者这可能是我必须在我的网络服务器中配置来接受来自android的调用?
只是猜测,会感激任何帮助。
答案 0 :(得分:1)
可能重复的答案
这种情况正在发生,因为有时您的服务器需要很长时间才能响应。实际上,这也可能由于网络速度缓慢而发生,因此您无法完全控制它。如果您使用的是HttpClient,则可以增加超时时间:
java.net.socketexception: The operation timed out problem in android?
答案 1 :(得分:0)
您的网络服务器对来自Android设备的通话并不在意。它只是看到HTTP请求进来并相应地处理它。我会调查你的Android设备是否真的能够首先接触到非本地地址。例如也许防火墙阻止了请求。如果这是在Android模拟器中,请确保正确配置其网络桥接。
答案 2 :(得分:0)
我在这里松散地使用语言:10.0.2.2是Android的localhost,它指向你机器上的127.0.0.1。因此,如果您的脚本是从http://127.0.0.1:90/fscript.php运行的,那么它应该在Android上的http://10.0.2.2:90/fscript.php处可见。