From 476ce02fc8a81f1adc2ea651cedf3ea6866cc055 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Thu, 5 Jun 2025 15:06:55 +0800 Subject: [PATCH] =?UTF-8?q?Json=E6=95=B0=E6=8D=AE=E9=80=82=E9=85=8D?= =?UTF-8?q?=E5=90=BB=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 4 +- libappbase/build.gradle | 2 +- libappbase/build.properties | 4 +- .../libappbase/activities/LogonActivity.java | 1 + .../libappbase/models/ResponseData.java | 51 +++++++++++++------ .../studio/libappbase/utils/YunUtils.java | 39 +++++++------- 6 files changed, 63 insertions(+), 38 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index a74af71..df20050 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Jun 05 04:02:31 GMT 2025 +#Thu Jun 05 07:02:58 GMT 2025 stageCount=8 libraryProject=libappbase baseVersion=15.8 publishVersion=15.8.7 -buildCount=1 +buildCount=12 baseBetaVersion=15.8.8 diff --git a/libappbase/build.gradle b/libappbase/build.gradle index 4bf5023..132cb38 100644 --- a/libappbase/build.gradle +++ b/libappbase/build.gradle @@ -24,7 +24,7 @@ dependencies { api fileTree(dir: 'libs', include: ['*.jar']) // 网络连接类库 api 'com.squareup.okhttp3:okhttp:4.4.1' - api 'com.fasterxml.jackson.core:jackson-databind:2.15.2' + api 'com.fasterxml.jackson.core:jackson-databind:2.18.2' // 添加Gson依赖 api 'com.google.code.gson:gson:2.10.1' diff --git a/libappbase/build.properties b/libappbase/build.properties index a74af71..df20050 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Thu Jun 05 04:02:31 GMT 2025 +#Thu Jun 05 07:02:58 GMT 2025 stageCount=8 libraryProject=libappbase baseVersion=15.8 publishVersion=15.8.7 -buildCount=1 +buildCount=12 baseBetaVersion=15.8.8 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/activities/LogonActivity.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/activities/LogonActivity.java index 381fd88..767d570 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/activities/LogonActivity.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/activities/LogonActivity.java @@ -28,6 +28,7 @@ public class LogonActivity extends Activity implements IWinBoLLActivity { public static final String DEBUG_HOST = "http://10.8.0.250:456"; public static final String YUN_HOST = "https://yun.winboll.cc"; + String mHost = ""; RadioButton mrbYunHost; RadioButton mrbDebugHost; diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/models/ResponseData.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/models/ResponseData.java index 8545706..19264b2 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/models/ResponseData.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/models/ResponseData.java @@ -7,32 +7,51 @@ package cc.winboll.studio.libappbase.models; import com.fasterxml.jackson.annotation.JsonProperty; public class ResponseData { + + public static final String STATUS_SUCCESS = "success"; + public static final String STATUS_ERROR = "error"; + @JsonProperty("status") private String status; @JsonProperty("message") private String message; - - // ❌ 原代码只有带参构造函数,缺少无参构造函数 - // public ResponseData(String status, String message) { - // this.status = status; - // this.message = message; - // } - - // ✅ 添加无参构造函数(Jackson 反序列化必需) + @JsonProperty("data") + private UserInfoModel data; + public ResponseData() { - // 空实现 + this.status = ""; + this.message = ""; + this.data = new UserInfoModel(); + } + + public ResponseData(String status, String message, UserInfoModel data) { + this.status = status; + this.message = message; + this.data = data; } - // 保留带参构造函数(可选,用于手动创建实例) - public ResponseData(String status, String message) { + public void setStatus(String status) { this.status = status; + } + + public String getStatus() { + return status; + } + + public void setMessage(String message) { this.message = message; } - // Getter 和 Setter - public String getStatus() { return status; } - public void setStatus(String status) { this.status = status; } - public String getMessage() { return message; } - public void setMessage(String message) { this.message = message; } + public String getMessage() { + return message; + } + + public void setData(UserInfoModel data) { + this.data = data; + } + + public UserInfoModel getData() { + return data; + } } diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/YunUtils.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/YunUtils.java index 585a837..7858da2 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/YunUtils.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/utils/YunUtils.java @@ -9,10 +9,12 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; import cc.winboll.studio.libappbase.LogUtils; +import cc.winboll.studio.libappbase.models.ResponseData; import cc.winboll.studio.libappbase.models.UserInfoModel; import com.google.gson.Gson; import java.io.File; import java.io.IOException; +import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.security.KeyPair; import java.security.PrivateKey; @@ -25,6 +27,7 @@ import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; +import java.io.UnsupportedEncodingException; public class YunUtils { public static final String TAG = "YunUtils"; @@ -95,24 +98,26 @@ public class YunUtils { @Override public void onSuccess(String responseBody) { LogUtils.d(TAG, "onSuccess"); - try { - String formattedJson = JsonFormatter.formatUnicodeToChinese(responseBody); - LogUtils.d(TAG, formattedJson); - return; - } catch (Exception e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - } - - try { - UserInfoModel userInfoModel = UserInfoModel.parseStringToBean(responseBody, UserInfoModel.class); - if (userInfoModel != null) { - LogUtils.d(TAG, "收到网站 UserInfoModel"); - String token = userInfoModel.getToken(); - saveLocalToken(token); - checkLoginStatus(); + LogUtils.d(TAG, String.format("responseBody %s", responseBody)); + Gson gson = new Gson(); + ResponseData result = gson.fromJson(responseBody, ResponseData.class); // 转为 Result 实例 + if(result.getStatus().equals(ResponseData.STATUS_SUCCESS)) { + + UserInfoModel userInfoModel = result.getData(); + if (userInfoModel != null) { + LogUtils.d(TAG, "收到网站 UserInfoModel"); + String token = userInfoModel.getToken(); + saveLocalToken(token); + checkLoginStatus(); + } + + } else if(result.getStatus().equals(ResponseData.STATUS_ERROR)) { + try { + String decodedMessage = URLDecoder.decode(result.getMessage(), "UTF-8"); + LogUtils.d(TAG, "服务器返回信息: " + decodedMessage); + } catch (UnsupportedEncodingException e) { + LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); } - } catch (IOException e) { - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); } }