참고 사이트
https://blueyikim.tistory.com/2199
https://kkh0977.tistory.com/562
HttpURLConnection
- Java에서 제공하는 HTTP 프로토콜을 이용한 통신을 위한 클래스입니다.
- URL을 통해 서버와 연결을 만들고, 데이터를 전송하고 수신할 수 있습니다.
- 다양한 HTTP 요청 메서드(GET, POST, PUT, DELETE 등)를 지원하며, 요청 헤더(header)와 요청 본문(body)을 설정할 수 있습니다.
- 또한, 서버로부터 받은 응답 코드(response code)와 응답 본문(response body)을 확인할 수 있습니다.
DataOutputStream
- 자바에서 데이터를 파일에 저장하거나 네트워크로 전송하기 위해서는 데이터를 바이트 스트림으로 변환해야 합니다.
- 이때 DataOutputStream 클래스를 사용하면 간단하게 데이터를 바이트 스트림으로 출력할 수 있습니다.
- 서버와 통신할때 동작 방식
- 3~6단계는 선택사항
- 5~6단계는 서로 바꿔서 사용 가능
1. URL 객체 생성
2. URL에서 URLConnection 객체 얻기
- openConnection()메서드는 실제 네트워크 연결을 설정하지 않는다.
- URLConnection 클래스의 인스턴스를 반환한다.
- 실제 네트워크 연결
- connect()메서드가 호출 될때
- 헤더 필드를 읽거나 입력스트림/출력스트림 가져올때
3. URLConnection 구성
- 클라이언트와 서버간 통신을 할때 다양한 옵션을 설정할 수 있다.
- setConnectTimeout(int)
- 연결 시도 시 대기 시간을 설정하는 데 사용됩니다.
- 설정한 시간내에 연결이 되지않으면 연결 시도는 실패하게 됩니다.
- setDoOutput(boolean)
- 서버에 데이터를 보낼지 여부
- true를 설정하면 URLConnection이 출력 스트림을 사용하여 서버로 데이터를 전송할 수 있습니다.
- setRequestProperty(String key, String value)
- HTTP 요청 헤더에 특정 속성을 추가하는 데 사용됩니다.
- setRequestProperty() 메서드를 사용하여 HTTP 요청 헤더에 속성을 추가하면, 이 속성이 HTTP 요청 헤더에 포함되어 서버에 전송됩니다.
- 첫 번째 인수는 HTTP 요청 헤더의 속성 이름이고, 두 번째 인수는 해당 속성의 값을 나타냅니다.
- ex) setRequestProperty("Accept-Charset", "UTF-8");
- setRequestMethod(String method)
- HTTP 요청 방법(Method)을 설정하는 데 사용됩니다.
- 일반적으로 사용되는 방법으로는 GET, POST, PUT, DELETE 등이 있습니다.
4. 헤더 필드 읽기
- 연결 성공후 서버에서 URL요청을 처리하고 메타데이터(헤더 필드)와 실제 콘텐츠로 구성된 응답을 받습니다.
- 헤더 필드는 키:값 쌍의 모음입니다.
- 헤더 필드는 서버에 대한 정보, 상태 코드, 프로토콜 정보등을 나타냅니다.
5. 입력 스트림 가져오기 및 데이터 읽기
6. 출력 스트림 가져오기 및 데이터 쓰기
7. 연결종료
- InputStream or OutputStream 객체에서 close()메서드를 호출하면 URLConnection 인스턴스와 연결된 네트워크 리소스가 해제됩니다.
'Java' 카테고리의 다른 글
[Java] Static 정리 (0) | 2023.04.10 |
---|---|
클래스(class) (0) | 2023.04.06 |
접근 제어자 (0) | 2023.04.06 |