我想写一个简单的程序,显示各种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