-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBasicHttpServerExample2.java
51 lines (42 loc) · 1.88 KB
/
BasicHttpServerExample2.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// inspired by https://www.logicbig.com/tutorials/core-java-tutorial/http-server/http-server-basic.html
package com.logicbig.example;
import com.sun.net.httpserver.*;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.UUID;
public class BasicHttpServerExample2 {
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8500), 0);
HttpContext context = server.createContext("/example");
context.setHandler(BasicHttpServerExample2::handleRequest);
server.start();
}
private static void handleRequest(HttpExchange exchange) throws IOException {
URI requestURI = exchange.getRequestURI();
UUID callid = UUID.randomUUID();
printRequestInfo(exchange);
String response = "This is the response at " + requestURI + " - " + callid;
exchange.sendResponseHeaders(200, response.getBytes().length);
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
private static void printRequestInfo(HttpExchange exchange) {
System.out.println("\n======================================");
System.out.println("-- headers --");
Headers requestHeaders = exchange.getRequestHeaders();
requestHeaders.entrySet().forEach(System.out::println);
System.out.println("-- principle --");
HttpPrincipal principal = exchange.getPrincipal();
System.out.println(principal);
System.out.println("-- HTTP method --");
String requestMethod = exchange.getRequestMethod();
System.out.println(requestMethod);
System.out.println("-- query --");
URI requestURI = exchange.getRequestURI();
String query = requestURI.getQuery();
System.out.println(query);
}
}