From 2c2ad88319f4af816c779a32fe6edea533fbf389 Mon Sep 17 00:00:00 2001 From: Ivan Olexyn Date: Thu, 16 Apr 2020 21:09:28 +0200 Subject: [PATCH] ~ handlers pt.1. --- mispbridge/src/BridgeServlet.java | 2 +- mispclient/src/ClientServlet.java | 192 ++++++++++++++++++++++-------- 2 files changed, 145 insertions(+), 49 deletions(-) diff --git a/mispbridge/src/BridgeServlet.java b/mispbridge/src/BridgeServlet.java index b0576b9..304fa3f 100644 --- a/mispbridge/src/BridgeServlet.java +++ b/mispbridge/src/BridgeServlet.java @@ -62,7 +62,7 @@ public final class BridgeServlet extends HttpServlet { // remove Ride from ForwardedData // add Ride to EOL - + // # send OK (Ride) to mispclient // # send OK (Ride) to public diff --git a/mispclient/src/ClientServlet.java b/mispclient/src/ClientServlet.java index b6d7cd1..f46af10 100644 --- a/mispclient/src/ClientServlet.java +++ b/mispclient/src/ClientServlet.java @@ -11,12 +11,20 @@ import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; +import java.util.ArrayList; +import java.util.List; public final class ClientServlet extends HttpServlet { private static final String MISP_BRIDGE_URL = "http://localhost:9090/mispbridge/core"; + private List availableRides = new ArrayList<>(); + private List reservedRides = new ArrayList<>(); + private List newRequests = new ArrayList<>(); + private List forwardedRequests = new ArrayList<>(); + private List newData = new ArrayList<>(); + private List forwardedData = new ArrayList<>(); public ClientServlet() { @@ -87,9 +95,6 @@ public final class ClientServlet extends HttpServlet { writer.println(""); writer.println(make2ColumnRow("foo", "bar")); - writer.println(make2ColumnRow("sendGet", sendGet())); - writer.println(make2ColumnRow("sendPost", sendPost())); - writer.println(""); writer.println(""); @@ -97,7 +102,7 @@ public final class ClientServlet extends HttpServlet { } - private String make2ColumnRow(String one, String two){ + private String make2ColumnRow(String one, String two) { StringBuilder sb = new StringBuilder(); sb.append(""); sb.append(""); @@ -112,84 +117,175 @@ public final class ClientServlet extends HttpServlet { } - private String sendGet() throws IOException { + URL url = new URL(MISP_BRIDGE_URL); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); - URL url = new URL(MISP_BRIDGE_URL); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); + // By default it is GET request + con.setRequestMethod("GET"); - // By default it is GET request - con.setRequestMethod("GET"); + //add request header + con.setRequestProperty("User-Agent", "USER_AGENT"); - //add request header - con.setRequestProperty("User-Agent", "USER_AGENT"); + int responseCode = con.getResponseCode(); + System.out.println("Sending get request : " + url); + System.out.println("Response code : " + responseCode); - int responseCode = con.getResponseCode(); - System.out.println("Sending get request : " + url); - System.out.println("Response code : " + responseCode); + // Reading response from input Stream + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + String output; + StringBuffer response = new StringBuffer(); + + while ((output = in.readLine()) != null) { + response.append(output); + } + in.close(); - // Reading response from input Stream - BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); - String output; - StringBuffer response = new StringBuffer(); - while ((output = in.readLine()) != null) { - response.append(output); - } - in.close(); + return response.toString(); + //printing result from response - return response.toString(); - //printing result from response + } + + + private void sendPostRide() throws IOException { + + URL url = new URL(MISP_BRIDGE_URL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + // prepare + connection.setRequestMethod("POST"); + connection.setRequestProperty("User-Agent", "USER_AGENT"); + connection.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + connection.setRequestProperty("Content-Type", "application/json"); + + Ride ride = new Ride(); + availableRides.add(ride); + + + // send POST + connection.setDoOutput(true); + DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); + outputStream.writeBytes(ride.json()); + outputStream.flush(); + outputStream.close(); + + + // read OK + int responseCode = connection.getResponseCode(); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String output; + StringBuilder response = new StringBuilder(); + + while ((output = in.readLine()) != null) { + response.append(output); + } + in.close(); + // process + availableRides.remove(ride); + reservedRides.add(ride); } + private void sendGetRide(Ride ride) throws IOException { + + URL url = new URL(MISP_BRIDGE_URL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + + // prepare + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", "USER_AGENT"); + connection.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + connection.setRequestProperty("Content-Type", "application/json"); + + + + + // send POST + connection.setDoOutput(true); + DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); + outputStream.writeBytes(ride.json()); + outputStream.flush(); + outputStream.close(); + + + // read OK + int responseCode = connection.getResponseCode(); + + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String output; + StringBuilder response = new StringBuilder(); + + while ((output = in.readLine()) != null) { + response.append(output); + } + in.close(); - private String sendPost() throws IOException{ + + Ride rideRequest = new Ride(response.toString()); + + + // process + // TODO add checks + reservedRides.remove(ride); + newRequests.add(rideRequest); + sendGetRequest(rideRequest.getRequest()); + newRequests.remove(rideRequest); + forwardedRequests.add(rideRequest); + + + } + + private void sendGetRequest(String request) throws IOException { URL url = new URL(MISP_BRIDGE_URL); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - // Setting basic post request - con.setRequestMethod("POST"); - con.setRequestProperty("User-Agent", "USER_AGENT"); - con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); - con.setRequestProperty("Content-Type","application/json"); + // prepare + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", "USER_AGENT"); + connection.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); + connection.setRequestProperty("Content-Type", "application/json"); - String postJsonData = "{\"id\":5,\"countryName\":\"USA\",\"population\":8000}"; - // Send post request - con.setDoOutput(true); - DataOutputStream wr = new DataOutputStream(con.getOutputStream()); - wr.writeBytes(postJsonData); - wr.flush(); - wr.close(); + // TODO replace + Ride ride = new Ride(); - int responseCode = con.getResponseCode(); - System.out.println("nSending 'POST' request to URL : " + url); - System.out.println("Post Data : " + postJsonData); - System.out.println("Response Code : " + responseCode); + // send POST + connection.setDoOutput(true); + DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); + outputStream.writeBytes(ride.json()); + outputStream.flush(); + outputStream.close(); + + + // read OK + int responseCode = connection.getResponseCode(); - BufferedReader in = new BufferedReader( - new InputStreamReader(con.getInputStream())); + BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); String output; - StringBuffer response = new StringBuffer(); + StringBuilder response = new StringBuilder(); while ((output = in.readLine()) != null) { response.append(output); } in.close(); - //printing result from response - System.out.println(); + Ride rideRequest = new Ride(response.toString()); - return response.toString(); + // process + // TODO add checks + reservedRides.remove(ride); + newRequests.add(ride); } + }