From 96afeb19b2bb25d44ecb04275feb7404641c7931 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Thu, 24 Sep 2020 14:23:45 +0800 Subject: [PATCH] --- .../redkale/mq/HttpMessageClusterClient.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/org/redkale/mq/HttpMessageClusterClient.java b/src/org/redkale/mq/HttpMessageClusterClient.java index 554b38495..589ff50a5 100644 --- a/src/org/redkale/mq/HttpMessageClusterClient.java +++ b/src/org/redkale/mq/HttpMessageClusterClient.java @@ -75,8 +75,20 @@ public class HttpMessageClusterClient extends HttpMessageClient { if (!DISALLOWED_HEADERS_SET.contains(n.toLowerCase())) builder.header(n, v); }); builder.header("Content-Type", "x-www-form-urlencoded"); - String paramstr = req.getParametersToString(); - if (paramstr != null) builder.POST(java.net.http.HttpRequest.BodyPublishers.ofString(paramstr)); + if (req.getBody() != null && req.getBody().length > 0) { + String paramstr = req.getParametersToString(); + if (paramstr != null) { + if (req.getRequestURI().indexOf('?') > 0) { + req.setRequestURI(req.getRequestURI() + "&" + paramstr); + } else { + req.setRequestURI(req.getRequestURI() + "?" + paramstr); + } + } + builder.POST(java.net.http.HttpRequest.BodyPublishers.ofByteArray(req.getBody())); + } else { + String paramstr = req.getParametersToString(); + if (paramstr != null) builder.POST(java.net.http.HttpRequest.BodyPublishers.ofString(paramstr)); + } List futures = new ArrayList<>(); for (Map.Entry> en : addrmap.entrySet()) { String realmodule = en.getKey(); @@ -108,8 +120,20 @@ public class HttpMessageClusterClient extends HttpMessageClient { if (!DISALLOWED_HEADERS_SET.contains(n.toLowerCase())) builder.header(n, v); }); builder.header("Content-Type", "x-www-form-urlencoded"); - String paramstr = req.getParametersToString(); - if (paramstr != null) builder.POST(java.net.http.HttpRequest.BodyPublishers.ofString(paramstr)); + if (req.getBody() != null && req.getBody().length > 0) { + String paramstr = req.getParametersToString(); + if (paramstr != null) { + if (req.getRequestURI().indexOf('?') > 0) { + req.setRequestURI(req.getRequestURI() + "&" + paramstr); + } else { + req.setRequestURI(req.getRequestURI() + "?" + paramstr); + } + } + builder.POST(java.net.http.HttpRequest.BodyPublishers.ofByteArray(req.getBody())); + } else { + String paramstr = req.getParametersToString(); + if (paramstr != null) builder.POST(java.net.http.HttpRequest.BodyPublishers.ofString(paramstr)); + } return forEachCollectionFuture(finest, userid, req, (req.getPath() != null && !req.getPath().isEmpty() ? req.getPath() : "") + req.getRequestURI(), builder, addrs.iterator()); }); }