public class newThread extends Thread { private String msg; public void run(){ //第一步:实例化URL对象 String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查询最新数据流详情 // String address="https://api.heclouds.com/devices/584758432/datapoints?limit=10"; //查询历史数据 // String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查询数据流详情 try { URL url =new URL(address); //实例化URL对象 //实例化 HttpURLConnection对象 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); //设置链接属性 conn.setRequestMethod("GET");//设置请求方法 conn.setRequestProperty("api-key","TeO0juJlw1uDTmDJRKD7cvzj=cM="); conn.setRequestProperty("Host","api.heclouds.com"); conn.setReadTimeout(5000);//设置超时时间 if(conn.getResponseCode()==200){ //获取状态码 200表示连接成功 //获取输入流 InputStream in= conn.getInputStream(); //读取输入流 byte[] b=new byte[1024*512]; //定义一个byte数组读取输入流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定义缓存流来保存输入流的数据 int len; while((len=in.read(b))>-1){ //每次读的len>-1 说明是是有数据的 baos.write(b,0,len); //三个参数 输入流byte数组 读取起始位置 读取终止位置 } msg=baos.toString(); Log.e("TAG", msg); // System.out.println("test"+msg); } } catch (java.io.IOException e) { e.printStackTrace(); } }
// 返回数据 public static String data() { newThread thread = new newThread(); thread.start(); while (thread.msg == null) { try { sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("test" + thread.msg); return thread.msg; } }