Это всего лишь часть большого проекта, над которым я работаю, но для этого мне нужно получить 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();
}
}
}