JAVA > webページを取得する


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

URLからコンテンツを取得します。

取得するにはURLクラスを使用します。
charsetをしくじると化けます^^;
サンプルクラスはURLからStringでコンテンツを取得します。
とりあえず10回ぐらいリトライ機能もあります。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class UrlUtil {

    /**
     * URLにより、コンテンツを取得する
     * 取得したコンテンツはString で返す
     * @param url
     * @return コンテンツ
     */
    public static String getUrl2String(String url){

        return getUrl2String(url, 0);
    }
    /**
     * URLにより、コンテンツを取得する
     * 取得したコンテンツはString で返す
     * @param url
     * @param errcnt
     * @return コンテンツ
     */
    public static String getUrl2String(String url, int errcnt){

        StringBuffer sb = new StringBuffer();

        try {
            URL url2 = new URL(url);
            URLConnection conn = url2.openConnection();
            String charset = conn.getContentType();
            charset = charset.substring(charset.indexOf("=") + 1, charset.length() );
            BufferedReader r = new BufferedReader(
                    new InputStreamReader(
                            conn.getInputStream(), charset ));

             char cha[] = new char[4096];
             int n;
             
             while((n = r.read(cha, 0, cha.length)) != -1){
                 String s = new String(cha,0,n);
                 sb.append( s );
//               System.out.print(s);
             }
      
          } catch (Exception e){
              e.getStackTrace();
              if(errcnt < 10){
                  errcnt++;
                  getUrl2String(url, errcnt);
              }
          } 

        return sb.toString();
    }
}
  • bbb -- あああ (2011-12-19 15:22:51)
    名前:
    コメント: