首先,感谢很多版上大大的精华篇,让小菜鸟我可学习很多信息,完成这个程序
下面简单介绍一下 HttpURLConnection 如何从App访问服务器
1.如果你是在本机端建立服务器,下面用的IP地址只需要改后面存储文件的位置即可,如果不是本机端服务器,直接改成服务器实体IP地址即可。
2.HttpURLConnection这个对象需要在线程里才能执行,下面的程序代码,直接复制到你的Class底下即可使用,在new Thread这个子程序里,已经使用了线程,无须另外写程序处理。
3.线程最后一定要记的.start();才不会DeBug找很久还没找到问题,结果发现是忘了启动,犯傻了
private void getJSON() { new Thread(new Runnable() { @Override public void run() { //默认IP地址 String host = "http://10.0.2.2/SelectData.php"; //建立HttpURLConnection对象 HttpURLConnection conn = null; try { //查看线程是否正常 if(Thread.interrupted()) throw new InterruptedException(); //设置链结 URL url = new URL(host); //打开链结 conn = (HttpURLConnection) url.openConnection(); //设置读取链结时间,这里设置为10秒 conn.setReadTimeout(10000); //设置联机链结时间,这里设置为15秒 conn.setConnectTimeout(15000); //使用GET方式获取数据 conn.setRequestMethod("GET"); //URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。 conn.setDoInput(true); //联机到服务器 conn.connect(); //查看线程是否正常 if(Thread.interrupted()) throw new InterruptedException(); //用缓冲区加载数据 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); //逐行读出JSON String jsonString = reader.readLine(); //打印JSON信息 Log.d("jsonStr",jsonString); //关闭对象 reader.close(); } catch (Exception e) { //有错误,抛出例外 e.printStackTrace(); } finally { //如果有联机成功,最后关闭联机 if(conn != null) conn.disconnect(); } } //最后启动线程 }).start(); }