From 5c19c10121b3701dba941f427337d78684d11c9e Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Thu, 17 Oct 2024 22:41:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A`webhook`=20?= =?UTF-8?q?=E5=8F=91=E9=80=81=E9=80=9A=E9=81=93=E9=80=9A=E8=BF=87`Content-?= =?UTF-8?q?Type=3Dtext/plain=E3=80=81text/html=E3=80=81text/css=E3=80=81te?= =?UTF-8?q?xt/javascript=E3=80=81text/xml`=E6=8C=87=E5=AE=9A=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E4=BD=93=E4=B8=BA`=E6=96=87=E6=9C=AC`=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forwarder/utils/sender/WebhookUtils.kt | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt index 6a73e3c8..9c06a6ae 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/sender/WebhookUtils.kt @@ -93,10 +93,19 @@ class WebhookUtils { //通过`Content-Type=applicaton/json`指定请求体为`json`格式 var isJson = false + //通过`Content-Type=text/plain、text/html、text/css、text/javascript、text/xml`指定请求体为`文本`格式 + var isText = false + var mediaType = "text/plain" for ((key, value) in setting.headers.entries) { - if (key.equals("Content-Type", ignoreCase = true) && value.contains("application/json")) { - isJson = true - break + if (key.equals("Content-Type", ignoreCase = true)) { + if (value.contains("application/json")) { + isJson = true + break + } else if (value.startsWith("text/")) { + isText = true + mediaType = value + break + } } } @@ -138,7 +147,7 @@ class WebhookUtils { } Log.d(TAG, "method = GET, Url = $requestUrl") XHttp.get(requestUrl).keepJson(true) - } else if (webParams.isNotEmpty() && (isJson || webParams.startsWith("{"))) { + } else if (webParams.isNotEmpty() && (isJson || isText || webParams.startsWith("{"))) { webParams = msgInfo.replaceTemplate(webParams, "", "Gson") val bodyMsg = webParams.replace("[from]", from) .replace("[content]", escapeJson(content)) @@ -155,10 +164,18 @@ class WebhookUtils { .replace("[timestamp]", timestamp.toString()) .replace("[sign]", sign) Log.d(TAG, "method = ${setting.method}, Url = $requestUrl, bodyMsg = $bodyMsg") - when (setting.method) { - "PUT" -> XHttp.put(requestUrl).keepJson(true).upJson(bodyMsg) - "PATCH" -> XHttp.patch(requestUrl).keepJson(true).upJson(bodyMsg) - else -> XHttp.post(requestUrl).keepJson(true).upJson(bodyMsg) + if (isText) { + when (setting.method) { + "PUT" -> XHttp.put(requestUrl).keepJson(true).upString(bodyMsg, mediaType) + "PATCH" -> XHttp.patch(requestUrl).keepJson(true).upString(bodyMsg, mediaType) + else -> XHttp.post(requestUrl).keepJson(true).upString(bodyMsg, mediaType) + } + } else { + when (setting.method) { + "PUT" -> XHttp.put(requestUrl).keepJson(true).upJson(bodyMsg) + "PATCH" -> XHttp.patch(requestUrl).keepJson(true).upJson(bodyMsg) + else -> XHttp.post(requestUrl).keepJson(true).upJson(bodyMsg) + } } } else { if (webParams.isEmpty()) {