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