Как получить HTML-код с определенного URL-адреса с помощью Java-апплетов? - PullRequest
0 голосов
/ 11 марта 2012

Это всего лишь часть большого проекта, над которым я работаю, но для этого мне нужно получить HTML-код с определенного URL-адреса. Я пробовал несколько программ из разных источников, и все они приводят к одной и той же ошибке, то есть это приводит к возникновению исключения (Моя текстовая область установлена ​​как ОШИБКА).

Я пытался использовать некоторые сторонние библиотеки, такие как jsoup, но также не смог заставить его работать.

Затем я предположил, что апплет не работает, потому что он не подписан. Однако даже после самостоятельной подписи, следуя инструкциям Безопасность апплета с самоподписывающимися файлами Jar , я все равно получаю ту же ошибку.

Я все еще относительно новичок в апплетах Java. Поэтому, если вы предоставляете альтернативный пример кода, укажите заголовочные файлы.

О, и эта программа была изменена из консольного Java-приложения, где она работала отлично. Однако всякий раз, когда я пытаюсь преобразовать его в апплет, он выходит из строя.


Ошибка:

java.security.AccessControlException: access denied (java.net.SocketPermission metalwihen.com:80 connect,resolve)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:528)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
    at sun.net.www.http.HttpClient.New(HttpClient.java:307)
    at sun.net.www.http.HttpClient.New(HttpClient.java:324)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
    at GrabHTML_Applet.Connect(GrabHTML_Applet.java:39)
    at GrabHTML_Applet.init(GrabHTML_Applet.java:24)
    at sun.applet.AppletPanel.run(AppletPanel.java:424)
    at java.lang.Thread.run(Thread.java:662)

Моя программа:

import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;

public class GrabHTML_Applet extends Applet  {

    private TextArea html;

    public void init()
    {
        setBackground(Color.lightGray);

        Panel panel=new Panel();
        panel.setLayout (new GridLayout(1,1,50,50));
        html=new TextArea(10,50);

        Connect();

        panel.add(html);
        add(panel);
    }

    public void Connect()
    {
        try {
            URL yahoo = new URL("http://metalwihen.com/");
            URLConnection yc = yahoo.openConnection();
            BufferedReader in = new BufferedReader(
                new InputStreamReader(
                    yc.getInputStream()));
            String inputLine;

            while ((inputLine = in.readLine()) != null)
                html.append(inputLine);
            in.close();
        } catch(Exception e) {
            html.append("ERROR");
            e.printStackTrace();
        }
    }
}
...