요르딩딩

[Spring 분석] URLConnect, HTTPURLConnect 본문

[Web]/[Spring]

[Spring 분석] URLConnect, HTTPURLConnect

요르딩딩 2021. 4. 3. 15:34
728x90
1. URLConnect

- 웹을 통해 데이터를 주고 받을때 사용
- 사용자 인증이나 보안이 설정되지 않은 웹서버에 접속하여 파일등을 다운로드 할때 많이 사용. 
- 리소스를 연결하기 전에 구성해야한다.
- 인스턴스는 재사용이 불가하고 connetion마다 다른 인스턴스를 사용해야한다.
2. HTTPURLConnect

- URLConnection을 구현한 클래스

둘다 protected로 선언되어있기 때문에 직접객체를 생성할 수는 없다.

그러나, openConnection()메소드가 반환하는 URLConnection객체는 HTTPURLConnection의 인스턴스로 사용할 수 있다.

아래처럼 URLConnection을 HTTPURLConnection으로 캐스팅해 사용할 수 있다.

URL url = new URL("http://www.naver.com"); //URL객체생성
HTTPURLConnection con =(HTTPURLConnection) url.openConnection(); //HTTPURLConnection객체생성
3. HTTP통신은 keep-alive를 지원한다.

-요청에대한 응답이 끝난 후에도 쉽게 닫히지 않고, 동일한 client에게 또 요청이 오면 소켓을 재사용한다. 
- Time-out을 설정하여 연결을 종료할 수 있다.

 

[소스]

URL url = new URL("http://www.naver.com"); //URL객체생성
HTTPURLConnection con =(HTTPURLConnection) url.openConnection(); //HTTPURLConnection객체생성

con.getInputStream(); //결과 Stream data를 Stream객체에 할당하여 활용가능하다.

con.setRequestMethod("GET"); //요청방식설정
con.setRequestProperty("key", "value"); //request Header설정, 다양한 요청가능
con.setConnectTimeOut(1000);//서버연결 제한시간 (밀리세컨즈 1000분의 1초)
con. setReadTimeOut(1000); //서버연결 후 데이터 read 제한시간

 

728x90
Comments