以下代码来自我的第一个互联网应用。我没有测试过,因为我没有可用的WLAN。我接下来要做的是从网站上检索数据。
是否有任何程序可以完成此类任务?
JAVA代码:
public class Internet00 extends Activity {
TextView tv00;
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netWorkinfo = cm.getActiveNetworkInfo();
if (netWorkinfo != null && netWorkinfo.isConnected()) {
return true;
}
return false;
}
private void readStream(InputStream in) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader (in));
String line="";
while ( (line=reader.readLine()) != null)
tv00.setText(line);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
@SuppressLint({ "ParserError", "NewApi" })
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_internet00);
tv00 = (TextView) findViewById(R.id.tv00);
if(isNetworkAvailable()) {
StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
URL url = new URL("http://www.vogella.com");
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
readStream(con.getInputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
你能更具体一点吗?
我觉得你已经在检索数据了。
你的代码应该失败,因为你正在UI线程中做网络工作。
答案 1 :(得分:0)
是的,当然,你需要遵循一些规则。
AsyncTask
进行下载相关工作可在此处找到一个工作示例:Getting info from api using JSON
请参阅上面的帖子,将数据从服务器下载到您的设备。这个工作示例对你来说是一个好的开始。