From e16a598617e3b2ce57aef496a5e4c21a2b522bdf Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 15:31:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20HeartbeatWorker.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nbee/echolink/utils/HeartbeatWorker.java | 41 +++++++++++++------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/nbee/echolink/utils/HeartbeatWorker.java b/app/src/main/java/com/nbee/echolink/utils/HeartbeatWorker.java index 31f9001..418b08a 100644 --- a/app/src/main/java/com/nbee/echolink/utils/HeartbeatWorker.java +++ b/app/src/main/java/com/nbee/echolink/utils/HeartbeatWorker.java @@ -8,6 +8,7 @@ import android.os.Handler; import android.util.Log; import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; import com.nbee.echolink.R; import com.nbee.echolink.model.DeviceInfo; import com.nbee.echolink.response.ApiResponse; @@ -47,25 +48,39 @@ public class HeartbeatWorker extends Worker { client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { - Timber.d("Request to " + heartBeatURL); + Timber.e(e, "请求 " + heartBeatURL + "失败"); } + @Override - public void onResponse(okhttp3.Call call, okhttp3.Response response) throws IOException { - if (!response.isSuccessful()) { - // 在这里处理响应错误 - Timber.d("Request to " + heartBeatURL + " returned error: " + response.code() + ", " + response.message()); - throw new IOException("Unexpected code " + response); - } - // ... 处理响应 ... - Gson gson1 = new Gson(); - ApiResponse apiResponse = gson1.fromJson(response.body().string(), ApiResponse.class); - if (apiResponse.getCode().equals(0)){ - Timber.d("Received response from " + heartBeatURL + ": " + apiResponse.getCode() + " - " + apiResponse.getMsg()); + public void onResponse(okhttp3.Call call, okhttp3.Response response) { + try { + if (!response.isSuccessful()) { + // 在这里处理响应错误 + Timber.d("Request to " + heartBeatURL + " returned error: " + response.code() + ", " + response.message()); + } else { + // 处理成功的响应 + String responseBody = response.body().string(); // 获取响应体 + Gson gson = new Gson(); + ApiResponse apiResponse = gson.fromJson(responseBody, ApiResponse.class); + if (apiResponse == null){ + Timber.d("apiResponse is null."); + } + if (!apiResponse.getCode().equals("0")) { + Timber.d("请求返回状态码错误,返回内容: " + apiResponse); + } + } + } catch (IOException e) { + Timber.e(e, "IOException during handling response"); + } catch (JsonSyntaxException e) { + Timber.e(e, "JsonSyntaxException during parsing response"); + } finally { + response.close(); // 确保响应体被关闭 } } }); } + private Request buildRequest(String apiUrl){ SN = context.getResources().getString(R.string.SN); accessToken = context.getResources().getString(R.string.access_token); @@ -73,7 +88,7 @@ public class HeartbeatWorker extends Worker { deviceInfo.setDeviceBrand(DeviceInfoUtils.getDeviceBrand()); deviceInfo.setDeviceModel(DeviceInfoUtils.getDeviceModel()); deviceInfo.setAndroidVersion("Android " + DeviceInfoUtils.getDeviceAndroidVersion()); - deviceInfo.setSN(SN); + deviceInfo.setSn(SN); Gson gson = new Gson(); // 将对象转换为JSON字符串 String json = gson.toJson(deviceInfo);