diff options
author | Srk <watertext@hotmail.it> | 2017-11-22 19:50:19 +0100 |
---|---|---|
committer | Srk <watertext@hotmail.it> | 2017-11-22 19:50:19 +0100 |
commit | 906d376b4f8c199b36064a0cd58cdf9c3ccb712f (patch) | |
tree | 18a706a9e96898d9a3486ab99f2420ac65a5902f /src/org/traccar/notification/MultiPartEventForwarder.java | |
parent | 07eae46acf26e2d978655f8ec0e5fd09c47c1546 (diff) | |
download | traccar-server-906d376b4f8c199b36064a0cd58cdf9c3ccb712f.tar.gz traccar-server-906d376b4f8c199b36064a0cd58cdf9c3ccb712f.tar.bz2 traccar-server-906d376b4f8c199b36064a0cd58cdf9c3ccb712f.zip |
Changing form method
Diffstat (limited to 'src/org/traccar/notification/MultiPartEventForwarder.java')
-rw-r--r-- | src/org/traccar/notification/MultiPartEventForwarder.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/org/traccar/notification/MultiPartEventForwarder.java b/src/org/traccar/notification/MultiPartEventForwarder.java new file mode 100644 index 000000000..a77ad5975 --- /dev/null +++ b/src/org/traccar/notification/MultiPartEventForwarder.java @@ -0,0 +1,47 @@ +package org.traccar.notification; + +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.traccar.Context; +import org.traccar.model.Event; +import org.traccar.model.Position; + +import com.ning.http.client.AsyncHttpClient.BoundRequestBuilder; +import com.ning.http.client.multipart.StringPart; + +public class MultiPartEventForwarder extends EventForwarder { + + private final String payloadParamName; + private final String additionalParams; + + public MultiPartEventForwarder() { + payloadParamName = Context.getConfig().getString("event.forward.paramMode.payloadParamName", "payload"); + additionalParams = Context.getConfig().getString("event.forward.paramMode.additionalParams", ""); + } + + @Override + protected String getContentType() { + return "multipart/form-data"; + } + + @Override + protected void setContent(Event event, Position position, BoundRequestBuilder requestBuilder) { + + if (!additionalParams.equals("")) { + Map<String, List<String>> paramsToAdd = splitParams(additionalParams, "="); + + for (Entry<String, List<String>> en : paramsToAdd.entrySet()) { + for (String value : en.getValue()) { + requestBuilder.addBodyPart(new StringPart(en.getKey(), value, null, StandardCharsets.UTF_8)); + } + } + } + requestBuilder.addBodyPart(new StringPart(payloadParamName, + prepareJsonPayload(event, position), + "application/json", + StandardCharsets.UTF_8)); + } +} |