반응형
개발을 하다보면 의도치 않게 다른 사이트의 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(); } } }
반응형
'Programming > Java' 카테고리의 다른 글
문자열 나누기(분리하기) - StringTokenizer, split (0) | 2015.12.16 |
---|---|
텍스트 파일 생성 (FileWriter, BufferedWriter) (0) | 2015.12.15 |
디렉토리내 일정기간 지난 파일 삭제 (0) | 2015.12.14 |
디렉토리내 특정 파일 리스트 출력 (0) | 2015.12.14 |
[Java]특정날짜 요일 구하기 (0) | 2015.12.14 |