From 02bdabacb594113e7889394e49e3bbd77f6b217e Mon Sep 17 00:00:00 2001 From: SKonst <346403746@qq.com> Date: Thu, 26 Dec 2024 14:12:41 +0800 Subject: [PATCH] [ISSUE #5851] Sandbox API debugging, the target API method is not POST, and the response format is JSON. The API returns an exception. (#5852) * fix admin: The error occurs when testing the sandbox API, and the target method is not a POST request. * fix admin: Applied Checkstyle to HttpUtils file --------- Co-authored-by: aias00 Co-authored-by: xiaoyu --- .../java/org/apache/shenyu/admin/utils/HttpUtils.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java index e814fefc57f1..d82532897539 100644 --- a/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java +++ b/shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/HttpUtils.java @@ -28,6 +28,7 @@ import okhttp3.RequestBody; import okhttp3.Response; import okhttp3.ResponseBody; +import okhttp3.internal.http.HttpMethod; import okhttp3.logging.HttpLoggingInterceptor; import okhttp3.logging.HttpLoggingInterceptor.Level; import org.apache.commons.codec.digest.DigestUtils; @@ -220,15 +221,16 @@ public String request(final String url, final Map form, final Map header) throws IOException { + final Map header, final HTTPMethod method) throws IOException { RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json); Request.Builder requestBuilder = new Request.Builder() .url(url) - .post(body); + .method(method.value(), HttpMethod.requiresRequestBody(method.value()) ? body : null); addHeader(requestBuilder, header); Request request = requestBuilder.build(); @@ -305,7 +307,7 @@ public Response requestCall(final String url, final Map form, final M if (Objects.nonNull(files) && !files.isEmpty()) { return requestFile(url, form, header, files); } else if (isJsonRequest(header)) { - return requestJson(url, JsonUtils.toJson(form), header); + return requestJson(url, JsonUtils.toJson(form), header, method); } else { return requestForResponse(url, form, header, method); }