반응형
개발을 하다보면 의도치 않게 다른 사이트의 URL 을 호출하여 해당 페이지의 내용을 읽어와야 할 경우가 있다.
특정 사이트의 URL을 파싱하여 데이터를 긁어모으는 등과 같은 방법으로도 이용할 수 있는데,
이부분은 엄연한 불법이므로 시도하지 말자.
나같은 경우 서로 다른 도메인간에 API(xml, json) 호출을 Ajax를 통해 할때 해당 방법을 이용한다.
왜 그래야 하는지는 조만간 포스팅 하도록 하겠다.
다른 도메인의 URL을 호출하는것은 java의 URL, URLConnection 객체의 사용으로 가능하다.
해당 객체를 이용하면 URL의 있는 HTML과 같은 태그 내용을 읽을 수 있는데,
리눅스에서 외부 페이지를 다운받는 wget 과 비슷하다.
wget 명령어는 해당 URL 페이지를 시스템에 문서로 다운로드 받을수 있는 반면에,
java에서는 다운로드가 아닌 BufferReader에 저장을 한다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class URLReader { public static void main(String[] args) { StringBuffer sbuf = new StringBuffer(); try { // URL 객체 생성 URL url = new URL("http://www.naver.com"); // URLConnection 생성 URLConnection urlConn = url.openConnection(); InputStream is = urlConn.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "UTF-8"); BufferedReader br = new BufferedReader(isr); String str ; while((str=br.readLine()) != null){ sbuf.append(str + "\r\n") ; } // 콘솔에 출력하기 System.out.println(sbuf.toString()) ; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
'Language > Java / JSP' 카테고리의 다른 글
[Java] Json 파싱(Json -> Map 변환) (0) | 2014.08.06 |
---|---|
[Java] javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name (2) | 2014.08.05 |
[Java] 엑셀 파일 만들기 (0) | 2014.08.01 |
[Java] Gmail SMTP를 이용한 메일 보내기 (8) | 2014.07.28 |
[Java] SHA256, MD5 암호화 하기 (1) | 2014.07.28 |