0

URL からソース コードを取得するクラスを作成しようとしています。この行で「シンボルが見つかりません」というエラーが表示される理由がわかりません。

catch (MalformaedURLException e)

誰かが何が間違っているかを説明できれば、それは素晴らしいことです...ありがとう

ここに私のコード全体があります:

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

public class SourceCode
{
private String source;
public SourceCode(String url)
{
    try
    {
        URL page = new URL(url);
        this.source = getSource(page);
    }
    catch (MalformedURLException e)
    {
        e.printStackTrace();
    }
}

public String getSource(URL url) throws Exception
{

        URLConnection spoof = url.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream()));
        String strLine = "";

        spoof.setRequestProperty( "User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)" );


        while ((strLine = in.readLine()) != null)
        {
            strLine = strLine + "\n";
        }
        return strLine;
}

}

4

1 に答える 1

4

このコードには複数の問題があります。

  1. のインポートがありませんjava.net.MalformedURLException
  2. getSource()メソッドから文字列を返す必要があります。
  3. spoof.setRequestPropertyソースからの読み取りを開始した後に設定しています
  4. コンストラクターは、例外をスローする代わりに無視しています
  5. ソースのゲッターはありません
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class SourceCode {
    private String source;

    public SourceCode(URL pageURL) throws IOException {
        this.source = getSource(pageURL);
    }

    public String getSource() {
        return source;
    }

    private String getSource(URL url) throws IOException {
        URLConnection spoof = url.openConnection();
        StringBuffer sb = new StringBuffer();

        spoof.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
        BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream()));

        String strLine = "";
        while ((strLine = in.readLine()) != null) {
            sb.append(strLine);
        }

        return sb.toString();
    }

    public static void main(String[] args) throws IOException {
        SourceCode s = new SourceCode(new URL("https://www.google.co.in/"));
        System.out.println(s.getSource());
    }
}
于 2013-03-05T06:00:38.800 に答える