Java HTTP Request 사용법 (.http) + String으로 readLine해보기
public void start() throws IOException {
try (ServerSocket serverSocket = new ServerSocket(port)) {
logger.info("1. Custom WAS started {} port.", port);
Socket clientSocket;
logger.info("2. Custom WAS waiting for the client.");
while ((clientSocket = serverSocket.accept()) != null) {
logger.info("3. Custom WAS client connected.");
try (InputStream in = clientSocket.getInputStream(); OutputStream out = clientSocket.getOutputStream()) {
BufferedReader br = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8));
DataOutputStream dataOutputStream = new DataOutputStream(out);
String line;
while ((line = br.readLine()) != "") {
System.out.println(line);
}
}
}
}
}
그 다음으로는 Java project 최상단 우클릭 => New => HTTP Request를 클릭하여
.http 확장자의 파일을 하나 만들어준다. 이렇게 .http를 사용하면 우리가 흔히 요청을 날릴 때 사용하는 Postman을 대체할 수 있고, Intellij에서 지원을 해주기 때문에 git으로도 버전 관리가 가능하다는 장점이 있다.
client를 기다리다가 http 요청이 들어가 이후 client가 connected 되었다는 것을 알 수 있다.
그 다음 들어오는 http request header를 읽기 위해서 BufferedReader를 사용하였고,
BufferedReader를 통해 string으로 readLine() 을 할 수 있다.
그 결과로 다음과 같은 String이 출력되는 것을 알 수 있다.
Host 정보, Connection 정보, User-Agent, Accept-Encoding 정보가 Request 정보에 담겨있다는 것을 알 수 있다.
이런 식으로 HTTP 정보를 읽어보았으니 이를 custom하여
customized Tomcat을 구현해볼 수 있다.