diff --git a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
index 2dcb6f11..44992797 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/SenderActivity.java
@@ -657,6 +657,7 @@ public class SenderActivity extends AppCompatActivity {
});
}
+ //webhook
private void setWebNotify(final SenderModel senderModel) {
WebNotifySettingVo webNotifySettingVo = null;
//try phrase json setting
@@ -674,6 +675,8 @@ public class SenderActivity extends AppCompatActivity {
if (senderModel != null) editTextWebNotifyName.setText(senderModel.getName());
final EditText editTextWebNotifyWebServer = view1.findViewById(R.id.editTextWebNotifyWebServer);
if (webNotifySettingVo != null) editTextWebNotifyWebServer.setText(webNotifySettingVo.getWebServer());
+ final EditText editTextWebNotifyWebParams = view1.findViewById(R.id.editTextWebNotifyWebParams);
+ if (webNotifySettingVo != null) editTextWebNotifyWebParams.setText(webNotifySettingVo.getwebParams());
final EditText editTextWebNotifySecret = view1.findViewById(R.id.editTextWebNotifySecret);
if (webNotifySettingVo != null) editTextWebNotifySecret.setText(webNotifySettingVo.getSecret());
final RadioGroup radioGroupWebNotifyMethod = (RadioGroup) view1.findViewById(R.id.radioGroupWebNotifyMethod);
@@ -692,38 +695,29 @@ public class SenderActivity extends AppCompatActivity {
buttonbebnotifyok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
-
+ WebNotifySettingVo webNotifySettingVoNew = new WebNotifySettingVo(
+ editTextWebNotifyWebServer.getText().toString(),
+ editTextWebNotifySecret.getText().toString(),
+ (radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST"),
+ editTextWebNotifyWebParams.getText().toString()
+ );
if (senderModel == null) {
SenderModel newSenderModel = new SenderModel();
newSenderModel.setName(editTextWebNotifyName.getText().toString());
newSenderModel.setType(TYPE_WEB_NOTIFY);
newSenderModel.setStatus(STATUS_ON);
- WebNotifySettingVo webNotifySettingVoNew = new WebNotifySettingVo(
- editTextWebNotifyWebServer.getText().toString(),
- editTextWebNotifySecret.getText().toString(),
- (radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST")
- );
newSenderModel.setJsonSetting(JSON.toJSONString(webNotifySettingVoNew));
SenderUtil.addSender(newSenderModel);
- initSenders();
- adapter.add(senderModels);
} else {
senderModel.setName(editTextWebNotifyName.getText().toString());
senderModel.setType(TYPE_WEB_NOTIFY);
senderModel.setStatus(STATUS_ON);
- WebNotifySettingVo webNotifySettingVoNew = new WebNotifySettingVo(
- editTextWebNotifyWebServer.getText().toString(),
- editTextWebNotifySecret.getText().toString(),
- (radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST")
- );
senderModel.setJsonSetting(JSON.toJSONString(webNotifySettingVoNew));
SenderUtil.updateSender(senderModel);
- initSenders();
- adapter.update(senderModels);
}
-
+ initSenders();
+ adapter.update(senderModels);
show.dismiss();
-
}
});
buttonbebnotifydel.setOnClickListener(new View.OnClickListener() {
@@ -741,11 +735,12 @@ public class SenderActivity extends AppCompatActivity {
@Override
public void onClick(View view) {
String webServer = editTextWebNotifyWebServer.getText().toString();
+ String webParams = editTextWebNotifyWebParams.getText().toString();
String secret = editTextWebNotifySecret.getText().toString();
String method = radioGroupWebNotifyMethod.getCheckedRadioButtonId() == R.id.radioWebNotifyMethodGet ? "GET" : "POST";
if (!webServer.isEmpty()) {
try {
- SenderWebNotifyMsg.sendMsg(0, handler, webServer, secret, method, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));
+ SenderWebNotifyMsg.sendMsg(0, handler, webServer, webParams,secret, method, "SmsForwarder Title", "测试内容(content)@" + (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));
} catch (Exception e) {
Toast.makeText(SenderActivity.this, "发送失败:" + e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
@@ -757,6 +752,7 @@ public class SenderActivity extends AppCompatActivity {
});
}
+ //企业微信群机器人
private void setQYWXGroupRobot(final SenderModel senderModel) {
QYWXGroupRobotSettingVo qywxGroupRobotSettingVo = null;
//try phrase json setting
diff --git a/app/src/main/java/com/idormy/sms/forwarder/model/vo/WebNotifySettingVo.java b/app/src/main/java/com/idormy/sms/forwarder/model/vo/WebNotifySettingVo.java
index 96b26c52..f7ab8f2c 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/model/vo/WebNotifySettingVo.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/model/vo/WebNotifySettingVo.java
@@ -8,14 +8,16 @@ public class WebNotifySettingVo implements Serializable {
private String webServer;
private String secret;
private String method;
+ private String webParams;
public WebNotifySettingVo() {
}
- public WebNotifySettingVo(String webServer, String secret, String method) {
+ public WebNotifySettingVo(String webServer, String secret, String method, String webParams) {
this.webServer = webServer;
this.secret = secret;
this.method = method;
+ this.webParams = webParams;
}
public String getWebServer() {
@@ -26,6 +28,14 @@ public class WebNotifySettingVo implements Serializable {
this.webServer = webServer;
}
+ public String getwebParams() {
+ return webParams;
+ }
+
+ public void setWebParams(String webParams) {
+ this.webParams = webParams;
+ }
+
public String getSecret() {
return secret;
}
@@ -49,4 +59,6 @@ public class WebNotifySettingVo implements Serializable {
return R.id.radioWebNotifyMethodGet;
}
}
+
+
}
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
index 38efb8a8..a73ca1f5 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SendUtil.java
@@ -158,7 +158,7 @@ public class SendUtil {
WebNotifySettingVo webNotifySettingVo = JSON.parseObject(senderModel.getJsonSetting(), WebNotifySettingVo.class);
if (webNotifySettingVo != null) {
try {
- SenderWebNotifyMsg.sendMsg(logId, handError, webNotifySettingVo.getWebServer(), webNotifySettingVo.getSecret(), webNotifySettingVo.getMethod(), smsVo.getMobile(), smsVo.getSmsVoForSend());
+ SenderWebNotifyMsg.sendMsg(logId, handError, webNotifySettingVo.getWebServer(), webNotifySettingVo.getwebParams(), webNotifySettingVo.getSecret(), webNotifySettingVo.getMethod(), smsVo.getMobile(), smsVo.getSmsVoForSend());
} catch (Exception e) {
LogUtil.updateLog(logId, 0, e.getMessage());
Log.e(TAG, "senderSendMsg: SenderWebNotifyMsg error " + e.getMessage());
diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java
index 674a0744..ffd63f8e 100644
--- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java
+++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderWebNotifyMsg.java
@@ -16,6 +16,7 @@ import javax.crypto.spec.SecretKeySpec;
import okhttp3.Call;
import okhttp3.Callback;
+import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -28,8 +29,8 @@ public class SenderWebNotifyMsg {
static String TAG = "SenderWebNotifyMsg";
- public static void sendMsg(final long logId, final Handler handError, String webServer, String secret, String method, String from, String content) throws Exception {
- Log.i(TAG, "sendMsg webServer:" + webServer + " from:" + from + " content:" + content);
+ public static void sendMsg(final long logId, final Handler handError, String webServer, String webParams, String secret, String method, String from, String content) throws Exception {
+ Log.i(TAG, "sendMsg webServer:" + webServer + " webParams:" + webParams + " from:" + from + " content:" + content);
if (webServer == null || webServer.isEmpty()) {
return;
@@ -57,6 +58,23 @@ public class SenderWebNotifyMsg {
Log.d(TAG, "method = GET, Url = " + webServer);
request = new Request.Builder().url(webServer).get().build();
+ } else if (webParams != null && webParams.contains("[msg]")){
+ String bodyMsg;
+ String Content_Type = "application/x-www-form-urlencoded";
+ if (webParams.startsWith("{")){
+ bodyMsg = content.replace("\n","\\n");
+ bodyMsg = webParams.replace("[msg]",bodyMsg);
+ Content_Type = "application/json;charset=utf-8";
+ }else{
+ bodyMsg = webParams.replace("[msg]",URLEncoder.encode(content, "UTF-8"));
+ }
+ RequestBody body = RequestBody.create(MediaType.parse(Content_Type), bodyMsg);
+ request = new Request.Builder()
+ .url(webServer)
+ .addHeader("Content-Type", Content_Type)
+ .method("POST", body)
+ .build();
+ Log.d(TAG, "method = POST webParams, Body = " + bodyMsg);
} else {
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("from", from)
diff --git a/app/src/main/res/layout/alert_dialog_setview_webnotify.xml b/app/src/main/res/layout/alert_dialog_setview_webnotify.xml
index b0a0f5b2..31aa078d 100644
--- a/app/src/main/res/layout/alert_dialog_setview_webnotify.xml
+++ b/app/src/main/res/layout/alert_dialog_setview_webnotify.xml
@@ -88,6 +88,27 @@
android:text="" />
+
+
+
+
+
+
+