private void streamResponse(Response resp, ResponseParams rp) throws IOException { OutputStream body = null; try { if (rp.staticFile) { String fileName = rp.message; body = resp.getOutputStream(); byte[] buffer = new byte[32 * 1024]; InputStream input = configReader.getStaticFile(fileName); int bytesRead; while ((bytesRead = input.read(buffer, 0, buffer.length)) > 0) { body.write(buffer, 0, bytesRead); } } else { body = resp.getPrintStream(); if (body != null) { ((PrintStream) body).print(rp.message); } } } finally { if (body != null) { try { body.close(); } catch (IOException e) { LOGGER.log(Level.SEVERE, "Exception on MockServer close", e); } } } }
public void handle(Request request, Response response) { String targetClean = request.getTarget().toLowerCase(); if (targetClean.indexOf('?') >= 0) { targetClean = targetClean.substring(0, targetClean.indexOf('?')); } if (targetClean.startsWith("/")) { targetClean = targetClean.substring(1); } if (targetClean.endsWith("/")) { targetClean = targetClean.substring(0, targetClean.length() - 1); } Container obj; try { obj = containers.get(URLDecoder.decode(targetClean.trim(), "UTF-8").toLowerCase()); if (obj == null) { String tmp = targetClean; while (tmp.contains("/") && obj == null) { tmp = tmp.substring(0, tmp.lastIndexOf('/')); obj = containers.get(URLDecoder.decode(tmp.trim(), "UTF-8").toLowerCase() + "/*"); } if (obj != null) { targetClean = tmp; } } System.out.println( "Request: " + request.getTarget() + " (" + URLDecoder.decode(targetClean.trim(), "UTF-8").toLowerCase() + ") -> " + (obj != null ? obj.getClass().getSimpleName() : "null")); if (obj != null) { obj.handle(request, response); return; } else { try { PrintStream body = response.getPrintStream(); response.setCode(404); body.println( "Not found: " + URLDecoder.decode(targetClean.trim(), "UTF-8").toLowerCase()); } catch (Exception e2) { } } } catch (Exception e) { try { PrintStream body = response.getPrintStream(); response.setCode(503); e.printStackTrace(body); } catch (Exception e2) { } } try { response.getPrintStream().close(); } catch (Exception e) { } }
@Override public void handle(Request request, Response response, SubscribeRequest message) throws Exception { String key = message.getKey(); StatusResponse status = new StatusResponse(key, true); manager.subscribe(message); String content = gson.toJson(status); OutputStream output = response.getOutputStream(); byte[] data = content.getBytes("UTF-8"); response.setContentType("text/json"); response.setContentLength(data.length); output.write(data); output.flush(); response.close(); }
public void handle(Request request, Response response) { try { PrintStream body = response.getPrintStream(); long time = System.currentTimeMillis(); Thread.sleep(responseDelay); response.setValue("Content-Type", "text/plain"); response.setValue("Server", "StubHttpServer/1.0 (Simple 4.0)"); response.setDate("Date", time); response.setDate("Last-Modified", time); body.println(responseText); body.close(); } catch (Exception e) { e.printStackTrace(); } }
/** * handle a http request and serve a file * * @param request the http request * @param response the http response */ @Override public void handle(Request request, Response response) { try { PrintStream body = response.getPrintStream(); long time = System.currentTimeMillis(); String msg = ""; String home = System.getProperty("user.dir"); String contentType = "text/plain"; Path path = request.getPath(); if (path.getPath().substring(path.getPath().length() - 3).equals(".js")) contentType = "application/javascript"; if (path.getPath().substring(path.getPath().length() - 3).equals("css")) contentType = "text/css"; response.set("Content-Type", contentType); response.set("Server", "ServerLyzer/1.0 (Simple 4.0)"); response.setDate("Date", time); response.setDate("Last-Modified", time); String filename = wwwroot + path.getPath(); String content; if (ServerLyzer.wwwroot == null) { content = new Scanner(new File(filename)).useDelimiter("\\Z").next(); /* * UPdated because the code below gives :/home/pehlivanz/workspace/Pagelyzer/target/Pagelyzer-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/js/bomlib.js * for the jars URL resourceUrl = getClass().getResource(filename); content = new Scanner(new File(resourceUrl.toURI().getPath().toString())).useDelimiter("\\Z").next(); */ } else { content = new Scanner(new File(filename)).useDelimiter("\\Z").next(); } body.print(content); body.println(msg); body.close(); } catch (IOException e) { e.printStackTrace(); } }
private void setResponseFields(Response resp, ResponseParams rp) { final long time = System.currentTimeMillis(); String contentType = getContentType(rp.staticFile, rp.message); resp.setContentType(contentType); resp.setValue("Server", "Mock"); resp.setDate("Date", time); resp.setDate("Last-Modified", time); resp.setCode(rp.responseCode); for (Map.Entry<String, String> header : rp.headers.entrySet()) { resp.setValue(header.getKey(), header.getValue()); } }
@Override public void handle(Request req, Response resp) { try { PrintStream body = resp.getPrintStream(); try { long time = System.currentTimeMillis(); resp.setValue("Content-Type", "application/javascript"); resp.setValue("Server", "HelloWorld/1.0 (Simple 4.0)"); resp.setDate("Date", time); resp.setDate("Last-Modified", time); generateJavascript(req, resp, body); } finally { body.close(); } } catch (Exception e) { e.printStackTrace(); resp.setStatus(Status.INTERNAL_SERVER_ERROR); return; } }
@Override public void handle(Request req, Response res) { try { Path p = req.getPath(); Query qry = req.getQuery(); PrintStream ps = res.getPrintStream(); long time = System.currentTimeMillis(); String service; if (p.getSegments().length >= 1) { service = p.getSegments()[0]; } else { service = ""; } res.setValue("Content-Type", "text/html"); res.setValue("Server", "SLPeripherals/1.0 (Simple 4.0)"); res.setDate("Date", time); res.setDate("Last-Modified", time); // System.out.println("request" + url); try { if (Integer.valueOf(service) != null) { int i = Integer.valueOf(service); if (services.get(i) != null) { // put an event and wait for response IComputerAccess ica = (IComputerAccess) ((Object[]) services.get(i))[0]; TileEntityHTTPD hd = (TileEntityHTTPD) ((Object[]) services.get(i))[1]; hd.reqsw.add(ps); int idx = hd.reqsw.lastIndexOf(ps); // reqs.add("{bl}"); // int idx=reqs.lastIndexOf("{bl}"); Map<String, String> cookies = new HashMap<String, String>(); for (Cookie c : res.getCookies()) { cookies.put(c.getName(), c.getValue()); } ica.queueEvent("http_server_request", new Object[] {idx, p.getPath(1), qry, cookies}); return; /* * * for (int ij = 1; ij <= 10; ij++) { Thread.sleep(100); * * if (! reqs.get(idx).equals("{bl}")) { // request * done. ps.print(reqs.get(idx)); ps.close(); return; } * * } * * // request timed out * * reqs.remove(idx); * * * * ps.print( * "<hr>The computer did not respond after 1 second, request timed out." * ); ps.close(); return; */ } else { ps.print( "SLP HTTP Server (based on the Simple Framework)<br>" + "The service " + i + " is not online."); } } } catch (Exception e) { ps.print( "SLP HTTP Server (based on the Simple Framework)<br>" + "Please go to a service by typing the computer id then a slash, example:<br>" + "http://localhost/4/<br>" + "would go to Computer ID 4's service. - The IDs are assigned by ComputerCraft.<br>" + "(please note 'localhost' depends on your setup. You may have to use a port number too. See the current URL.).<br>(exception encountered)"); } ps.close(); } catch (Exception e) { e.printStackTrace(); } }