package org.pdown.gui.http.controller; import io.netty.channel.Channel; import io.netty.handler.codec.http.DefaultFullHttpResponse; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.FullHttpResponse; import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.handler.codec.http.HttpVersion; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javafx.application.Platform; import org.pdown.gui.DownApplication; import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("api") public class ApiController { @RequestMapping("createTask") public FullHttpResponse createTask(Channel channel, FullHttpRequest request) throws Exception { Map<String, String> map = getQueryParams(request); DownApplication.INSTANCE.loadUri("/#/tasks?request=" + map.get("request") + "&response=" + map.get("response") + "&config=" + map.get("config") + "&data=" + map.get("data"), false); FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK); response.headers().set("Access-Control-Allow-Origin", "*"); return response; } private Map<String, String> getQueryParams(FullHttpRequest request) throws IOException { Map<String, String> map = new HashMap<>(); String uri = request.uri(); int index = uri.lastIndexOf("?"); if (index != -1 && index != uri.length() - 1) { String[] params = uri.substring(index + 1).split("&"); for (String param : params) { String[] kv = param.split("="); if (kv.length == 2) { map.put(kv[0], kv[1]); } } } return map; } }