diff --git a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt index bd23dbdc..37a4ef29 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/entity/setting/WebhookSetting.kt @@ -7,6 +7,7 @@ data class WebhookSetting( val method: String? = "POST", var webServer: String = "", val secret: String? = "", + val response: String? = "", val webParams: String? = "", val headers: Map?, ) : Serializable { diff --git a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt index 6f0ff47f..b962e7b0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/fragment/senders/WebhookFragment.kt @@ -128,6 +128,7 @@ class WebhookFragment : BaseFragment(), View.OnC binding!!.rgMethod.check(settingVo.getMethodCheckId()) binding!!.etWebServer.setText(settingVo.webServer) binding!!.etSecret.setText(settingVo.secret) + binding!!.etResponse.setText(settingVo.response) binding!!.etWebParams.setText(settingVo.webParams) //set header if (settingVo.headers != null) { @@ -241,10 +242,11 @@ class WebhookFragment : BaseFragment(), View.OnC else -> "POST" } val secret = binding!!.etSecret.text.toString().trim() + val response = binding!!.etResponse.text.toString().trim() val webParams = binding!!.etWebParams.text.toString().trim() val headers = getHeadersFromHeaderItemMap(headerItemMap) - return WebhookSetting(method, webServer, secret, webParams, headers) + return WebhookSetting(method, webServer, secret, response, webParams, headers) } 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 4eae7a45..7ad21592 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 @@ -199,8 +199,9 @@ class WebhookUtils { override fun onSuccess(response: String) { Log.i(TAG, response) - SendUtils.updateLogs(logId, 2, response) - SendUtils.senderLogic(2, msgInfo, rule, senderIndex, msgId) + val status = if (!setting.response.isNullOrEmpty() && !response.contains(setting.response)) 0 else 2 + SendUtils.updateLogs(logId, status, response) + SendUtils.senderLogic(status, msgInfo, rule, senderIndex, msgId) } }) diff --git a/app/src/main/res/layout/fragment_senders_webhook.xml b/app/src/main/res/layout/fragment_senders_webhook.xml index 2a9d335a..30da94cb 100644 --- a/app/src/main/res/layout/fragment_senders_webhook.xml +++ b/app/src/main/res/layout/fragment_senders_webhook.xml @@ -201,6 +201,28 @@ + + + + + + + + Socket Example:myapp://api/add?&type=0&msg=[msg] - 服务地址 - IP 或 域名 - 端口 - 取值范围:1-65535 + Service Address + "IP or Domain" + Port + Value Range:1-65535 Webhook Server For example: https://a.b.com/msg?token=xyz Params Msg Template For example: payload=%7B%22text%22%3A%22[msg]%22%7D [msg] will be replaced with SMS content.\nJson format is supported, e.g. {\"text\":\"[msg]\"}.\nNote: msg is automatically URLEncoder except in JSON format - Secret: If it is empty, the sign will not be calculated + Secret: If left empty, the sign will not be calculated + Successful Response Keyword:If left empty, HTTP status 200 represents success Headers Key Value diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1fb78ab0..2f63239f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -780,6 +780,7 @@ Params 例如:payload=%7B%22text%22%3A%22[msg]%22%7D [msg]将被替换成短信内容。\n支持Json格式,例如:{\"text\":\"[msg]\"}。\n注意:除JSON格式外,msg会自动进行URLEncoder Secret:置空则不计算sign + 成功应答关键字:置空则http状态200即为成功 Headers Key Value