From 007db8d5087a26fb72f6047aaea78297f91d32d0 Mon Sep 17 00:00:00 2001 From: redkale Date: Sat, 14 Oct 2023 16:14:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/redkale/cluster/HttpRpcClient.java | 16 +++++++++++++--- .../java/org/redkale/net/http/HttpResult.java | 4 ++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/redkale/cluster/HttpRpcClient.java b/src/main/java/org/redkale/cluster/HttpRpcClient.java index 9c4914037..017ce7038 100644 --- a/src/main/java/org/redkale/cluster/HttpRpcClient.java +++ b/src/main/java/org/redkale/cluster/HttpRpcClient.java @@ -11,6 +11,7 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; import org.redkale.convert.json.JsonConvert; import org.redkale.net.http.*; +import org.redkale.util.RedkaleException; /** * 不依赖MessageRecord则可兼容RPC方式 @@ -60,7 +61,10 @@ public abstract class HttpRpcClient implements ClusterRpcClient CompletableFuture sendMessage(HttpSimpleRequest request, Type type) { return sendMessage(generateHttpReqTopic(request, null), 0, null, request).thenApply((HttpResult httbs) -> { - if (httbs == null || httbs.getResult() == null) { + if (!httbs.isSuccess()) { + throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error")); + } + if (httbs.getResult() == null) { return null; } return JsonConvert.root().convertFrom(type, httbs.getResult()); @@ -69,7 +73,10 @@ public abstract class HttpRpcClient implements ClusterRpcClient CompletableFuture sendMessage(Serializable userid, HttpSimpleRequest request, Type type) { return sendMessage(generateHttpReqTopic(request, null), userid, null, request).thenApply((HttpResult httbs) -> { - if (httbs == null || httbs.getResult() == null) { + if (!httbs.isSuccess()) { + throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error")); + } + if (httbs.getResult() == null) { return null; } return JsonConvert.root().convertFrom(type, httbs.getResult()); @@ -78,7 +85,10 @@ public abstract class HttpRpcClient implements ClusterRpcClient CompletableFuture sendMessage(Serializable userid, String groupid, HttpSimpleRequest request, Type type) { return sendMessage(generateHttpReqTopic(request, null), userid, groupid, request).thenApply((HttpResult httbs) -> { - if (httbs == null || httbs.getResult() == null) { + if (!httbs.isSuccess()) { + throw new RedkaleException(httbs.getHeader("retinfo", "Internal Server Error")); + } + if (httbs.getResult() == null) { return null; } return JsonConvert.root().convertFrom(type, httbs.getResult()); diff --git a/src/main/java/org/redkale/net/http/HttpResult.java b/src/main/java/org/redkale/net/http/HttpResult.java index f2032b1f9..7808af06e 100644 --- a/src/main/java/org/redkale/net/http/HttpResult.java +++ b/src/main/java/org/redkale/net/http/HttpResult.java @@ -168,6 +168,10 @@ public class HttpResult { this.status = status; } + public boolean isSuccess() { + return status == 0 || status == 200; + } + @Override public String toString() { return JsonConvert.root().convertTo(this);