URLConnection 클래스로 웹 페이지 읽기

Posted by 겨울에
2011. 6. 27. 13:57 scrap/ Java/JSP

http://blog.naver.com/nicekkong/100038827474
[출처] URLConnection 클래스로 웹 페이지 읽기|작성자 nicekkong  



@ URLConnection 클래스

 

  URLConnection은 URL 주소의 내용을 읽어 오거나, 반대로 URL 주소가 가르키는 웹 어플리케이션(CGI, 서블릿, JSP 등)에게 GET 방식이나 POST 방식으로 추가적인 정보를 전달할수 있다.

 

그리고 웹 페이지의 내용을 읽어오는 것 외에도 반대로 웹 어플리케이션에 추가적인 정보를 전달해야 할 때가 있는데, 이때 POST 방식을 사용한다.

 

URLConnection 객체는 URL 클래스의 openConnection() 메서드를 이용해서 얻는다.

 


import java.net.*;
import java.io.*;

public class WebSpiderWithURLConnection
{
 public static void main(String arg[])  {
  URL url = null;
  try  {
   url = new URL(arg[0]);
  } catch  (MalformedURLException el)   {
   System.out.println("잘못된 URL 형식!!");
   System.out.println(el);
   System.exit(1);
  }
  
  FileOutputStream fos = null;
  
  try    {
   URLConnection urlcon = url.openConnection()
   // URL 클래스의 openConnection()을 이용하여 URLConnection 객체를 얻는다.
   
   String contentType = urlcon.getContentType();

   // 웹 문서의 헤드에서 contentType를 읽어 온다.


   long dl = urlcon.getDate();
   // 읽어 온 시간을 ms로 반환한다.

   java.util.Date d = new java.util.Date(dl);


   
   java.text.SimpleDateFormat format =

                  new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
   String sdate = format.format(d);
   
   System.out.println("Content Type : " + contentType);
   System.out.println("읽어온 시간 : " + sdate);
   
   InputStream in = urlcon.getInputStream();

   //  URL 문서의 input stream을 불러온다.


   fos = new FileOutputStream("test.txt");
   
   byte[] buffer = new byte[512];
   int readcount = 0;
   
   System.out.println("Reading.....");
   while ((readcount = in.read(buffer)) != -1)  {
    fos.write(buffer, 0, readcount);
   }
   
   System.out.println("text.txt" + "SAVE Finish");
  }  catch    (Exception e)    {
   System.out.println(e);
  }   finally  {
   try {
    if(fos != null) fos.close();
   }   catch    (Exception e)  {}
  }
 }
}