我正在尝试运行简单的应用程序来从 android 模拟器访问互联网,这是我的代码。我在代理后面,并通过“...无线网络 -> APN -> ...”在模拟器中配置了代理设置。但互联网是通过浏览器而不是应用程序运行的。
HttpURLConnection connection = null;
String URLName = "http://www.google.com";
try {
URL u = new URL(URLName);
connection = (HttpURLConnection) u.openConnection();
connection.setRequestMethod("HEAD");
int code = connection.getResponseCode();
Log.d(TAG1, " " + code);
// You can determine on HTTP return code received. 200 is success.
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG1, e.toString());
}
finally {
if (connection != null) {
connection.disconnect();
}
}
Logcat中错误日志部分如下:
01-11 01:01:26.308: DEBUG/SntpClient(72): request time failed: java.net.SocketException: Address family not supported by protocol
01-11 01:02:39.909: WARN/System.err(422): java.net.SocketException: The operation timed out
在论坛中搜索后,我尝试了以下选项,但似乎都不起作用:
在android启动选项中我使用了-http-proxy server:port -dns-server server
-
我已在清单文件中包含互联网权限
使用权限 android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
-
在有人建议后设置系统属性以使用 ipv4 堆栈
java.lang.System.setProperty("java.net.preferIPv4Stack", "true");
java.lang.System.setProperty("java.net.preferIPv6Addresses", "false");
我正在使用 Android 2.2 和 windows vista,您能在这里帮助我吗...
只是尝试做......
connection.setConnectTimeout(timeoutInMillisecs);
可能是你没有设置它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)