Updated to latest WebServer Version
This commit is contained in:
83
src/main/java/org/openautonomousconnection/oac2web/docs.java
Normal file
83
src/main/java/org/openautonomousconnection/oac2web/docs.java
Normal file
@@ -0,0 +1,83 @@
|
||||
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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user