【发布时间】:2011-09-16 19:41:41
【问题描述】:
我正在尝试打开一个 URL 并逐行阅读该网站。我可以在 Eclipse 中很好地做到这一点,因为我猜 Eclipse 会自动为您配置它。当我尝试从命令行运行程序时,程序挂起并且从不读取 URL。
经过一番研究,我发现问题与代理设置有关。我遇到的所有文章都说要更改如下内容:
System.setProperty("java.net.useSystemProxies","true");
或者像这样添加代码行:
System.setProperty("http.proxyHost", "webcache.mydomain.com");
System.setProperty("http.proxyPort", "80");
但我不知道该为我的代理设置设置什么以及这些 System.setProperty 调用中的任何一个做什么。有谁知道如何设置代理设置?我只是想在本地主机上从我的家用计算机上运行它,我什至没有在代理或任何东西后面。
这是我使用的在 Eclipse 中运行良好的代码。
URL link = new URL("http://www.yahoo.com");
BufferedReader in = new BufferedReader(new InputStreamReader(link.openStream()));
//InputStream in = link.openStream();
String inputLine = "";
int count = 0;
while ((inputLine = in.readLine()) != null) {
site = site + "\n" + inputLine;
}
in.close();
【问题讨论】:
-
从命令行运行它会发生什么?你有什么错误吗?你能显示错误堆栈跟踪吗?
-
您确定您的应用程序没有被您的操作系统代理阻止(尤其是如果您使用的是 XP)?
-
+1 防火墙或防病毒问题。如果您的网络没有代理,则无需设置代理。
-
我使用的是 Windows 7。如何判断它是否被我的操作系统的代理阻止。如果我运行“ping www.yahoo.com”,它会返回来自 67.195.160.76 的回复和说 4 包已发送,4 包已收到,没有丢失。不确定这是否有帮助。
-
没有错误发生,程序刚刚启动,然后它就永远挂起试图访问 URL。