我为版本2.3开发了应用程序,它使用Web服务对设备用户进行身份验证;当我在Samsung GT-P3100(版本4.0.3 Icecream Sandwitch)中部署时,相同的应用程序我收到连接失败;虽然我可以使用设备与webservice通信浏览器...请建议,我是否需要为版本4.0.3重新创建项目,或者标签需要在mainfest文件中获得一些特殊权限吗?可能是什么原因
答案 0 :(得分:0)
使用此代码获取html内容:
public static String getHTML ( String url) throws IOException {
if (url == null || url.length() == 0) {
throw new IllegalArgumentException("url cannot be null or empty");
}
final HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
final BufferedReader buf = new BufferedReader(new InputStreamReader(conn.getInputStream()));
final StringBuilder page = new StringBuilder();
final String lineEnd = System.getProperty("line.separator");
String line;
try {
while (true) {
line = buf.readLine();
if (line == null) {
break;
}
page.append(line).append(lineEnd);
}
} finally {
buf.close();
}
try {
return page.toString().substring(0, page.toString().length() -1);
} catch (Exception e) {
return "";
}
}
您需要在AndroidManifest.xml中添加permision
<uses-permission android:name="android.permission.INTERNET" />
也许在android 4和heighter上你需要在一个新线程中执行这个功能,为此使用代码:
startInNewThread();
//call the fonction getHTML() in a new thread
private void startInNewThread() {
new Thread(new Runnable() {
@Override
public void run() {
getHTML ("URL");
}
}).start();
}
如果您需要使用“getHtml()”的结果更新UI,则必须创建一个处理程序