목차
- 자바 소스코드 컴파일 및 실행 관련 예제 이전 포스팅
- 자바에서 사용자에게 입력 받기 관련 예제 이전 포스팅
- 자바에서 특정 URL 및 커넥션 생성 예제(URL, HttpURLConnection)
- GET 메소드 설정 및 요청, 응답 예제(Request)
- 응답 내용을 읽고 출력하기 예제(BufferedReader)
자바 소스코드 컴파일 및 실행 관련 예제 이전 포스팅
아직 리눅스 환경에서 자바 소스코드 컴파일 및 실행 방법을 모르신다면 아래 링크의 이전 포스팅을 참고하여 학습해주세요.
2023.08.10 - [Linux] - [Linux/Java] 리눅스 우분투에서 java 컴파일 및 실행 예제(javac)
자바에서 사용자에게 입력 받기 관련 예제 이전 포스팅
우선 HTTP 통신을 하려면 어느 서버에 요청을 보낼지 정해야합니다. 오늘 포스팅에서는 따로 정해진 URL에 요청하는 것이 아니라 사용자에게 실시간으로 URL을 입력받아 요청해보도록 하겠습니다. 그러기 위해서는 일반적으로 자바에서 어떻게 사용자의 입력을 받는지 알아야합니다. 이전에 이러한 주제와 관련하여 포스팅을 하였습니다. 우선 확인해주세요.
아래는 관련 포스팅 링크입니다.
2023.08.10 - [Java] - [Java] InputStreamReader 사용자에게 문자열 입력받아 치환 예제(readLine, replace)
자바에서 특정 URL 및 커넥션 생성 예제(URL, HttpURLConnection)
자 그러면 이제 예제를 통해 알아보도록 하겠습니다. 우선 사용자에게 URL 문자열을 입력받고 해당 주소를 가진 URL 객체를 생성합니다. 또한 HttpURLConnection 객체에 전달하여 서버에 요청(Request)를 전송할 준비를 합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Enter URL: ");
String urlStr = reader.readLine();
// URL 객체 생성
URL url = new URL(urlStr);
// HTTP 연결 객체 생성
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
System.out.println("커넥션이 정상적으로 생성되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
GET 메소드 설정 및 요청, 응답 예제(Request)
다음으로 오늘 예제에서는 GET 메소드로 사이트에 요청을 해보겠습니다. GET은 일반적으로 클라이언트가 요청한 사이트를 다운로드하는 메소드입니다. 메소드 설정후에는 요청을 보내고 서버가 주는 응답을 받습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Enter URL: ");
String urlStr = reader.readLine();
// URL 객체 생성
URL url = new URL(urlStr);
// HTTP 연결 객체 생성
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// GET 요청 설정
connection.setRequestMethod("GET");
// 응답 코드 가져오기
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
} catch (IOException e) {
e.printStackTrace();
}
}
}
응답 내용을 읽고 출력하기 예제(BufferedReader)
이제 서버가 도대체 어떤 응답을 줬는지 화면에 출력하여 확인해보는 예제를 실행해보겠습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
class Main {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Enter URL: ");
String urlStr = reader.readLine();
// URL 객체 생성
URL url = new URL(urlStr);
// HTTP 연결 객체 생성
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// GET 요청 설정
connection.setRequestMethod("GET");
// 응답 코드 가져오기
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 응답 내용 읽기
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 응답 내용 출력
System.out.println("Response Content:\n" + response.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}