Java URL 类 openStream 抛出 java.net.ConnectException:连接被拒绝:连接 [英] Java URL class openStream throwing java.net.ConnectException: Connection refused: connect

查看:254
本文介绍了Java URL 类 openStream 抛出 java.net.ConnectException:连接被拒绝:连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一个简单的程序来显示各种 URL 的内容.我的代码是这样的.

I'm trying to write a simple program that displays the content of various URLS. My code is this.

    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";

最后一个

  • String site = "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 站点没有任何问题.我能做些什么来解决这个问题的任何想法.我可以从浏览器访问的所有指定资源.

This also happens with various other ftp sites that I have tried as well. Haven't had any problems with HTTP sites. Any ideas what I can do to fix this. All the specified resources I can reach from my browser.

推荐答案

该站点可能是 拒绝非浏览器用户代理.您可以尝试设置用户代理:

It's possible that the site is refusing non-browser user agents. You can try setting the User-Agent:

URL url;
String site = "ftp://metalab.unc.edu/";
try {
    url = new URL(site);
    URLConnection urlc = url.openConnection();
    urlc.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2");
    InputStream stream = urlc.getInputStream();
    for(int i = 0;i!= -1;i= stream.read()){
        System.out.print((char)i);
    }
    stream.close();
} catch (IOException e) {
    e.printStackTrace();
}

这篇关于Java URL 类 openStream 抛出 java.net.ConnectException:连接被拒绝:连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆