728x90
URL 객체를 쓰는 이유가 커넥션을 받기 위해서인데. 커넥션을 받는이유는 데이터 소스를 받아와야하기 때문이다.
즉 b라는 객체에 담긴 inputstream을 받아올려면 쓰여야 함.
네트워크 규약상 https 프로토콜로된 사이트에 접속을 하려면 handsake fatal error를 접하는 경우가 있는데 다음과 같은 이유이다.
1. 인증서가 없는데 (자동이거나) 잘못된 인증서를 집어넣거나 할 경우
2. 인증서가 있는데 인증서를 집어넣지 못한 경우
3. 인증서에 알맞지 않은 인증서를 넣을 경우.
인증서를 받아올려면, 크롬과 같은 인터넷 브라우저로 https 프로토콜로 사이트 접속후 주소창에 왼쪽 초록색 문서 표시를
눌러서 저장하면된다.
보통 프로그램에 쓰이는 pks 방식의 인증서를 넣으라고 되어잇는데. 받은 인증서를 파일변환 하던지.
아니면 openssl과 같은 프로그램으로 인증서를 생성하여 java 설치 폴더내에 lib\security 폴더에
cacerts 파일에 추가시켜주면 되는것. 이 파일에 웬만한 인증서는 담겨있으나. 더 필요하다는 경우
oracle에서 제공하는 cacerts를 받아와주면 된다. (첨부파일하겠다)
다른 cacerts도 여러사이트에 많으니 ( 알려지지않은 인증서가 포함된...) 찾아서 다운하시면 되겠다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package subject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class SubList { public static void main(String[] args) throws IOException { URL a = new URL("http://rusdndprp.blog.me/110189798628"); URLConnection b = a.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(b.getInputStream())); String line; while((line = in.readLine()) != null) { System.out.println(line); } in.close(); } } | cs |