我正在創建一個java applet來收集和處理來自其他網站的一些數據。小程序是未簽名的,據我瞭解,由於安全原因,對其他站點的訪問被阻止。java.net.SocketPermission - 奇怪的行爲
但是,似乎至少有一個其他網站沒有被封鎖。我想這樣的代碼:
package where;
import java.awt.BorderLayout;
import java.awt.Container;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JTextArea;
public class TestPermissions extends JApplet {
JTextArea txt = new JTextArea();
public void openURL(String site) {
txt.append(site+": ");
try {
URL url = new URL(site);
BufferedReader in = new BufferedReader(
new InputStreamReader(
url.openStream()));
txt.append("Succes\n");
} catch (Exception e) {
txt.append("Failed\n");
txt.append(e.getMessage()+"\n");
System.err.println(e.getMessage());
}
}
public void init() {
openURL("http://www.buienradar.nl/");
openURL("http://buienradar.nl/");
openURL("http://www.google.nl/");
openURL("http://whatismyipaddress.com/");
openURL("http://www.google.com/");
openURL("http://www.nrg.eu/");
openURL("http://www.ecn.nl/");
Container cp = getContentPane();
cp.setLayout(new BorderLayout());
cp.add(BorderLayout.CENTER, txt);
}
}
,其結果是:
http://www.buienradar.nl/: Failed
access denied (java.net.SocketPermission www.buienradar.nl:80 connect,resolve)
http://buienradar.nl/: Failed
access denied (java.net.SocketPermission buienradar.nl:80 connect,resolve)
http://www.google.nl/: Failed
access denied (java.net.SocketPermission www.google.nl:80 connect,resolve)
http://whatismyipaddress.com/: Succes
http://www.google.com/: Failed
access denied (java.net.SocketPermission www.google.com:80 connect,resolve)
http://www.nrg.eu/: Failed
access denied (java.net.SocketPermission www.nrg.eu:80 connect,resolve)
http://www.ecn.nl/: Failed
access denied (java.net.SocketPermission www.ecn.nl:80 connect,resolve)
我明白了「拒絕訪問」 repsonses,但爲什麼訪問授予 http://whatismyipaddress.com
我歡迎答案或提示或建議以供參考。
親愛的Dacwe,
感謝您的迴應。
我的服務器名稱不是whatismyipaddress.com。
我把小應用程序的服務器上: http://www.vitanova.co.nr/test/TestPermissions.html
代碼爲:
http://www.vitanova.co.nr/test/where/TestPermissions.java
除了把另一個小程序,從whatismyipaddress.com獲取數據的服務器上(實際上是PC的預定位置),並嘗試從該位置的buienradar獲取天氣數據,後者由於小程序的安全性而失敗。
http://www.vitanova.co.nr/test/ReadURL.html
的代碼爲:
http://www.vitanova.co.nr/test/where/ReadURL.java
我的服務器名稱不是whatismyipaddress.com。我把小程序放在服務器上:[link](http://www.vitanova.co.nr/test/TestPermissions.html) – jacquesb
謝謝,我在我的問題中添加了更多信息。 – jacquesb