我想寫一個簡單的程序,顯示各種URL的內容。我的代碼是這樣的。Java URL類openStream拋出java.net.ConnectException:連接被拒絕:連接
import java.io.IOException;
import java.io.InputStream;
import java.net.*;
public class test {
public static void main(String[] args) {
URL url;
//String site ="ftp://ftp.suse.com/";
//String site ="http://www.google.ca";
//String site = "ftp://ftp.gnu.org/README";
String site = "ftp://metalab.unc.edu/";
try {
url = new URL(site);
InputStream stream = url.openStream();
for(int i = 0;i!= -1;i= stream.read()){
System.out.print((char)i);
}
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
前3個資源是細
- 字符串站點= 「ftp://ftp.suse.com/」;
- String site =「http://www.google.ca」;
- String site =「ftp://ftp.gnu.org/README」;
但最後一個
- 字符串網站= 「ftp://metalab.unc.edu/」;
產生以下錯誤
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.ftp.impl.FtpClient.openPassiveDataConnection(Unknown Source)
at sun.net.ftp.impl.FtpClient.openDataConnection(Unknown Source)
at sun.net.ftp.impl.FtpClient.list(Unknown Source)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at test.main(test.java:13)
這也恰好與我曾嘗試以及其他各種FTP站點。 HTTP網站沒有任何問題。任何想法我可以做什麼來解決這個問題。我可以通過瀏覽器訪問的所有指定資源。
除非你要使用[真實的用戶代理字符串(HTTP:// www.useragentstring.com/pages/useragentstring.php),也許「Mozilla/5.0(Windows NT 6.1; rv:6.0)Gecko/20110814 Firefox/6.0」 –
@RyanStewart謝謝,編輯。 – skyuzo
這對我不起作用我仍然有同樣的錯誤。我在幾臺不同的機器上進行了測試,結果發現這個錯誤:sun.net.ftp.FtpProtocolException:PORT:500 Illegal PORT命令,EPSV ALL生效 at sun.net.ftp.FtpClient.openDataConnection(FtpClient。 (ftpURLConnection.java:373) at test.main(java:435) test.java:17)' – train5potting