我正在阅读Android 开发教程。我在 Java 方面不是很有经验,但我发现这是一个很好的练习。无论如何,这是当前应该从我的 Android 设备上的网站获取数据的代码(几乎 downloadUrl 可以做所有事情 - 所以请帮助我):
private class DownloadXmlTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
return downloadUrl(urls[0]);
} catch (IOException e) {
return getResources().getString(R.string.connection_error);
}
}
@Override
protected void onPostExecute(String result) {
try{
doEt(result);
} catch (Exception e){
System.out.println(e);
}
}
private String downloadUrl(String urlString) throws IOException {
java.net.URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(100000);
conn.setConnectTimeout(150000);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
BufferedReader r = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line);
}
//conn.disconnect();
return total.toString();
}
}
在 doEt() 中,我只是打印出我获得的字符串。不过,只有一半的网站在返回的 String 变量中。任何帮助表示赞赏,谢谢!