From 1564523fcd94155d92c6e21d0f1ff565dbc4281a Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 16 Apr 2024 10:18:41 +0800 Subject: [PATCH] Merge pull request #398 from jadehh/release * Add md5X Function and Support Post "raw" Methods --- .../main/java/com/fongmi/quickjs/method/Global.java | 8 ++++++++ .../main/java/com/fongmi/quickjs/utils/Connect.java | 7 +++++++ .../main/java/com/fongmi/quickjs/utils/Crypto.java | 11 +++++++++++ 3 files changed, 26 insertions(+) diff --git a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java index 65c1f64aa..3be1acfed 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java @@ -147,6 +147,14 @@ public class Global { return parser.joinUrl(parent, child); } + @Keep + @JSMethod + public String md5X(String text) { + String result = Crypto.md5(text); + Logger.t("md5X").d("text:%s\nresult:\n%s" , text, result); + return result; + } + @Keep @JSMethod public String aesX(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java index b6ac1fecc..0508daa2c 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java @@ -68,6 +68,7 @@ public class Connect { if (req.getData() != null && "json".equals(req.getPostType())) return getJsonBody(req); if (req.getData() != null && "form".equals(req.getPostType())) return getFormBody(req); if (req.getData() != null && "form-data".equals(req.getPostType())) return getFormDataBody(req); + if (req.getData() != null && "raw".equals(req.getPostType())) return getRawBody(req); if (req.getBody() != null && contentType != null) return RequestBody.create(req.getBody(), MediaType.get(contentType)); return RequestBody.create("", null); } @@ -76,6 +77,10 @@ public class Connect { return RequestBody.create(req.getData().toString(), MediaType.get("application/json")); } + private static RequestBody getRawBody(Req req) { + return RequestBody.create(req.getData().toString(), MediaType.get("application/json; charset=utf-8")); + } + private static RequestBody getFormBody(Req req) { FormBody.Builder builder = new FormBody.Builder(); Map params = Json.toMap(req.getData()); @@ -91,6 +96,8 @@ public class Connect { return builder.build(); } + + private static void setHeader(QuickJSContext ctx, Response res, JSObject object) { for (Map.Entry> entry : res.headers().toMultimap().entrySet()) { if (entry.getValue().size() == 1) object.setProperty(entry.getKey(), entry.getValue().get(0)); diff --git a/quickjs/src/main/java/com/fongmi/quickjs/utils/Crypto.java b/quickjs/src/main/java/com/fongmi/quickjs/utils/Crypto.java index ee66a02f7..1ef28f03f 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/utils/Crypto.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/utils/Crypto.java @@ -14,9 +14,20 @@ import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import com.github.catvod.utils.Util; public class Crypto { + public static String md5(String text) { + try { + return Util.md5(text); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + public static String aes(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { try { byte[] keyBuf = key.getBytes();