public void Get() { new Thread(new Runnable() { @Override public void run() { try { //接受温度 API_KEY_SET(); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url("http://api.heclouds.com/devices/" + DeviceID + "/datapoints?datastream_id=" + key1).header("api-key", ApiKey).build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); parseJSONWithGSON(responseData);
时间: 2024-02-10 15:10:02 浏览: 30
这段代码实现了从OneNet平台获取数据的具体逻辑。在该方法中,首先通过调用API_KEY_SET()方法来设置API key和设备ID。然后,创建了一个OkHttpClient对象,并通过该对象构建了一个Request请求对象,其中包含了要访问的URL和请求头部中的API key信息。接着,通过client.newCall(request).execute()方法来执行该请求,并将返回的结果保存到Response对象中。最后,通过response.body().string()方法将响应体中的数据转换为字符串,并调用parseJSONWithGSON方法来解析该字符串中的JSON数据。
需要注意的是,由于该方法中包含了网络访问操作,因此需要在子线程中执行,否则会导致主线程阻塞。在本例中,使用了一个匿名的Runnable对象来创建一个新的子线程,并在该线程中执行Get()方法的具体逻辑。
如果您有具体的问题或疑惑,可以进一步提问。
相关问题
public void load(){ new Thread(new Runnable() { @Override public void run() { try{ String url = "/user/selectone"; String string = okhttputil.request_get(url).execute().body().string(); JSONObject jsonObject = new JSONObject(string); data = jsonObject.getString("data"); handler.post(udpUIRunnable); }catch (Exception e){ e.printStackTrace(); } } }).start(); }
这段代码看起来是一个线程加载数据的方法,使用了OkHttp发送GET请求获取数据并解析为JSONObject,然后将解析出的数据存储到data变量中,最后使用Handler将更新UI的任务提交到UI线程执行。具体细节需要看okhttputil.request_get方法的实现和udpUIRunnable的具体内容。
public void load() { new Thread(new Runnable() { @Override public void run() { try { Call call = okhttputil.request_get("/computer/display"); Response execute = call.execute(); String string = execute.body().string(); JSONObject jsonObject = new JSONObject(string); data = jsonObject.getString("data"); handler.post(udpUIRunnable); // ArrayList<componBean> arrayList = (ArrayList<componBean>) JSON.parseArray(data, componBean.class); // componlistadapter componlistadapter = new componlistadapter(mContext,arrayList); // componlist.setAdapter(componlistadapter); // handler.post(new Runnable() { // @Override // public void run() { // componlist.setAdapter(componlistadapter); // } // }); } catch (Exception e) { e.printStackTrace(); } } }).start(); }
这段代码看起来像是一个加载数据的方法,通过向服务器发送请求获取数据,并将数据存储在 data 变量中,最后通过 handler.post() 方法将数据更新到 UI 界面上去。其中,使用了 okhttputil.request_get() 方法向服务器发送 GET 请求,获取服务器返回的数据,并将数据解析成 JSON 格式,从中获取到 data 字段的值。在获取到数据之后,可以通过 JSON.parseArray() 方法将 JSON 数据转化为 Java 对象,然后使用 componlistadapter 将数据显示在 componlist 中。不过,这部分代码被注释掉了,可能是因为开发者选择了其他方法来显示数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)