84 lines
3.7 KiB
Java
84 lines
3.7 KiB
Java
|
|
package org.openautonomousconnection.oac2web;
|
||
|
|
|
||
|
|
import com.google.gson.JsonObject;
|
||
|
|
import org.openautonomousconnection.protocol.packets.v1_0_0.beta.web.WebResponsePacket;
|
||
|
|
import org.openautonomousconnection.protocol.versions.v1_0_0.beta.WebRequestMethod;
|
||
|
|
import org.openautonomousconnection.webserver.api.Route;
|
||
|
|
import org.openautonomousconnection.webserver.api.WebPage;
|
||
|
|
import org.openautonomousconnection.webserver.api.WebPageContext;
|
||
|
|
|
||
|
|
import javax.net.ssl.HttpsURLConnection;
|
||
|
|
import java.io.BufferedReader;
|
||
|
|
import java.io.InputStreamReader;
|
||
|
|
import java.io.OutputStream;
|
||
|
|
import java.net.URL;
|
||
|
|
import java.nio.charset.StandardCharsets;
|
||
|
|
import java.util.HashMap;
|
||
|
|
import java.util.Map;
|
||
|
|
|
||
|
|
@Route(path = "docs.html")
|
||
|
|
public class docs implements WebPage {
|
||
|
|
@Override
|
||
|
|
public WebResponsePacket handle(WebPageContext webPageContext) throws Exception {
|
||
|
|
if (webPageContext.request.getMethod() == WebRequestMethod.POST) {
|
||
|
|
String hostIp = webPageContext.request.getHeaders().get("ip");
|
||
|
|
String description = webPageContext.request.getHeaders().get("description");
|
||
|
|
int tcp = 0;
|
||
|
|
int udp = 0;
|
||
|
|
|
||
|
|
try {
|
||
|
|
tcp = Integer.parseInt(webPageContext.request.getHeaders().get("tcp"));
|
||
|
|
udp = Integer.parseInt(webPageContext.request.getHeaders().get("udp"));
|
||
|
|
} catch (NumberFormatException exception) {
|
||
|
|
return new WebResponsePacket(400, "text/plain", webPageContext.request.getHeaders(),
|
||
|
|
("Bad request:\n" + exception.getMessage()).getBytes());
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
HashMap<String, String> dataMap = new HashMap<>();
|
||
|
|
dataMap.put("ip", hostIp);
|
||
|
|
dataMap.put("tcp", String.valueOf(tcp));
|
||
|
|
dataMap.put("udp", String.valueOf(udp));
|
||
|
|
dataMap.put("desc", description);
|
||
|
|
|
||
|
|
URL url = new URL("https://open-autonomous-connection.org/api/add.php");
|
||
|
|
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
|
||
|
|
connection.setRequestMethod("POST");
|
||
|
|
connection.setRequestProperty("Content-Type", "application/json");
|
||
|
|
connection.setDoOutput(true);
|
||
|
|
JsonObject jsonData = new JsonObject();
|
||
|
|
|
||
|
|
for (Map.Entry<String, String> entry : dataMap.entrySet()) {
|
||
|
|
jsonData.addProperty(entry.getKey(), entry.getValue());
|
||
|
|
|
||
|
|
try (OutputStream os = connection.getOutputStream()) {
|
||
|
|
byte[] input = jsonData.toString().getBytes(StandardCharsets.UTF_8);
|
||
|
|
os.write(input, 0, input.length);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
int responseCode = connection.getResponseCode();
|
||
|
|
StringBuilder response = new StringBuilder();
|
||
|
|
|
||
|
|
try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||
|
|
String inputLine;
|
||
|
|
while ((inputLine = in.readLine()) != null) {
|
||
|
|
response.append(inputLine);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
connection.disconnect();
|
||
|
|
|
||
|
|
return new WebResponsePacket(200, "text/plain", webPageContext.request.getHeaders(), ("Published\n" +
|
||
|
|
"Received Response Code: " + responseCode + "\n" + "Received Response: " + response).getBytes());
|
||
|
|
|
||
|
|
} catch (Exception e) {
|
||
|
|
return new WebResponsePacket(500, "text/plain", webPageContext.request.getHeaders(),
|
||
|
|
("Bad request:\n" + e.getMessage()).getBytes());
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return new WebResponsePacket(400, "text/plain", webPageContext.request.getHeaders(), "Bad request".getBytes());
|
||
|
|
}
|
||
|
|
}
|