-
[자바] URLConnection, HTTPURLConnection자바 2023. 4. 22. 16:52
api 호출하는 코드를 짜면서 URLConnection / HTTPURLConnection 사용을 했다
문제는 " connection 시작 > api 호출 > connection 끝 " 이 과정에서 api 호출을 여러 번 하고 싶었다
그래서 URLConnection / HTTPURLConnection에 대해 더 찾아봤고 해결책은 다른 방법이었지만... 뭐...
결론은 불가능하다. 한 번 호출에 connection을 계속 열고 닫아야 한다
The specification for java.net.HttpURLConnection propertly documents that the URLConnection can only be used to make a single request : "Each HttpURLConnection instance is used to make a single request but the underlying network connection to the HTTP server may be transparently shared by other instances."
URLConnection은 java 애플리케이션과 url 간의 연결 관련한 모든 클래스의 슈퍼클래스
- URLConnection의 클래스는 일반적인 URL에 대한 API 제공
- 서브클래스 HttpURLConnection은 HTTP 고유 기능에 대한 추가 지원 제공
두 개 모두 추상 클래스
> 새 인스턴스를 직접 만들 수 없고 URL 객체에 연결을 통해 URLConnection의 인스턴스를 얻는다.
1. 객체 생성
2. URL에서 URLConnection 객체 얻기 (openConnection)
3. URLConnection 구성
> 클라이언트와 서버 간 다양한 옵션을 설정할 수 있다
> setDoOutput : URLConnection을 서버에 데이터를 보내는 데 사용할 수 있는지 여부 설정
> setRequestProperty : key-value 쌍으로 지정된 일반 요청 속성을 설정한다.
4, 헤더 필드 읽기
> 연결이 이루어지면 서버는 URL 요청을 처리하고 메타데이터와 실제 콘텐츠로 구성된 응답을 다시 보낸다.
> 메타 데이터는 헤더 필드라고 하는 키=값 쌍의 모음
> 헤더 필드는 서버에 대한 정보, 상태 코드, 프로토콜 정보 등을 나타낸다
5. 입력 스트림 가져오기 및 데이터 읽기
> inputStram 인스턴스를 얻은 다음 read() 메서드로 읽기
> 데이터를 문자열로 읽기 위해 inputStream을 BufferedReader 매핑
6. 출력 스트림 가져오기 및 데이터 쓰기
> 서버에 데이터를 보내려면 먼저 연결에서 출력을 활성화해야 한다.
> outputstream 객체를 가져온 다음 outputStram의 write() 메서드를 이용해 데이터를 쓰기
7. 연결 종료
> close() 메서드 호출
(참고)
https://blueyikim.tistory.com/2199
cf. 슈퍼클래스
상속 : 이미 존재하는 클래스로부터 멤버들을 물려받는 것
상속되는 클래스를 부모클래스, 슈퍼클래스(Super Class)라고 한다
상속받는 클래스를 자식클래스, 서브클래스(Sub Class)라고 한다
(참고) https://enter.tistory.com/108
cf. 추상클래스
객체를 직접 생성할 수 있는 클래스를 실체클래스라고 하는데, 실체클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상클래스라고 한다.
- 추상클래스는 실체클래스의 공통적인 부분(변수, 메서드)을 추출해서 선언한 클래스
- 추상클래스는 객체를 선언할 수 없다. 아직 실체성이 없고 구체적이지 않기 때문에
- 추상클래스와 실체클래스는 상속관계이다
(참고) https://limkydev.tistory.com/188
참고한 포스팅들이 모두 설명이 잘 되어있어 두고두고 볼 것
728x90'자바' 카테고리의 다른 글
[JAVA] openAI API 이용한 chatGPT, 자바로 채팅 기능 구현하기 - V2 (0) 2023.04.24 [JAVA] stream (0) 2023.04.23 [JAVA] openAI API 이용한 chatGPT, 자바로 채팅 기능 구현하기 - V1 (0) 2023.04.21 인프런 예제로 공부하는 Java 100 문제풀이 Part.2 (0) 2022.12.26 인프런 예제로 공부하는 Java 100 문제풀이 Part.1 후기 (0) 2022.12.20