send http response
This commit is contained in:
parent
2ecb728d87
commit
c764c45807
32
Main.java
32
Main.java
|
@ -1,8 +1,11 @@
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.io.OutputStream;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
|
@ -10,6 +13,7 @@ public class Main {
|
||||||
try (ServerSocket serverSocket = new ServerSocket(8080)) {
|
try (ServerSocket serverSocket = new ServerSocket(8080)) {
|
||||||
System.out.println("listening on socket 8080...");
|
System.out.println("listening on socket 8080...");
|
||||||
while (true) {
|
while (true) {
|
||||||
|
// .accept() blocks until we have a client
|
||||||
try (Socket client = serverSocket.accept()) {
|
try (Socket client = serverSocket.accept()) {
|
||||||
handleClient(client);
|
handleClient(client);
|
||||||
}
|
}
|
||||||
|
@ -28,8 +32,34 @@ public class Main {
|
||||||
requestBuilder.append(line + "\r\n");
|
requestBuilder.append(line + "\r\n");
|
||||||
}
|
}
|
||||||
String request = requestBuilder.toString();
|
String request = requestBuilder.toString();
|
||||||
System.out.println(request);
|
// System.out.println(request);
|
||||||
|
String[] requestLines = request.split("\r\n");
|
||||||
|
String[] requestLine = requestLines[0].split(" ");
|
||||||
|
String method = requestLine[0];
|
||||||
|
String path = requestLine[1];
|
||||||
|
String version = requestLine[2];
|
||||||
|
String host = requestLines[1].split(" ")[1];
|
||||||
|
|
||||||
|
List<String> headers = new ArrayList<>();
|
||||||
|
// we start the loop from 2 because 0 is GET / HTTP/1.1 and 1 is the host
|
||||||
|
for (int h = 2; h < requestLines.length; h++) {
|
||||||
|
String header = requestLines[h];
|
||||||
|
headers.add(header);
|
||||||
|
}
|
||||||
|
|
||||||
|
String accessLog = String.format("Client %s, method %s, path %s, version %s, host %s, headers %s",
|
||||||
|
client.toString(),
|
||||||
|
method, path, version, host, headers.toString());
|
||||||
|
System.out.println(accessLog);
|
||||||
|
|
||||||
|
OutputStream clientOutput = client.getOutputStream();
|
||||||
|
clientOutput.write("HTTP/1.1 200 OK\r\n".getBytes());
|
||||||
|
clientOutput.write("ContentType: text/html\r\n".getBytes());
|
||||||
|
clientOutput.write("\r\n".getBytes());
|
||||||
|
clientOutput.write("<b>Hurray!!!1!</b>".getBytes());
|
||||||
|
clientOutput.write("\r\n\r\n".getBytes());
|
||||||
|
clientOutput.flush();
|
||||||
|
client.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue