import java.io.IOException; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpsExchange; import com.sun.net.httpserver.HttpHandler; import java.io.OutputStream; import java.util.*; import org.eclipse.paho.client.mqttv3.*; public class Stop implements HttpHandler { static private Publisher mqtt_client; Stop(Publisher client) { mqtt_client = client; } @Override public void handle(HttpExchange exchange) throws IOException { // HttpsExchange exchange = (HttpsExchange) ex; String response; // printRequestInfo(exchange); List<String> strlist = new ArrayList<String>(); String requestMethod = exchange.getRequestMethod(); if (requestMethod.compareTo("POST") == 0 || requestMethod.compareTo("post") == 0) { JsonBody body = new JsonBody(exchange.getRequestBody()); String domain = body.getDomain(); String topic = "conf/" + domain + "/all/appmanager/stop"; try { mqtt_client.publish(topic, body.body); } catch (MqttException e) { e.printStackTrace(); } response = "{\"result\":\"done\"}"; exchange.getResponseHeaders().put("content-type", strlist); exchange.sendResponseHeaders(200, response.getBytes().length); OutputStream os = exchange.getResponseBody(); os.write(response.getBytes()); os.close(); } else { System.out.println("Operation not supported!"); exchange.sendResponseHeaders(200, 0); OutputStream os = exchange.getResponseBody(); os.close(); } } }