【发布时间】:2011-01-19 13:17:02
【问题描述】:
我无法打开带有特定网络资源的 URLConnection。我得到了
“java.net.ConnectException: Connection timed out:”。是因为该域阻止了直接 URL 连接吗?如果是这样,他们如何阻止这个?下面是我写的代码sn-p。
代码sn-p:
导入 java.io.; 导入 java.net.;
公共类TestFileRead{
public static void main(String args[]){
try{
String serviceUrl = "http://xyz.com/examples.zip";
HttpURLConnection serviceConnection = (HttpURLConnection) new URL(serviceUrl).openConnection();
System.out.println(serviceConnection);
serviceConnection.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
DataInputStream din=new DataInputStream(serviceConnection.getInputStream());
FileOutputStream fout=new FileOutputStream("downloaded");
DataOutputStream dout=new DataOutputStream(fout);
int bytes;
while(din.available()>0){
bytes=din.readByte();
dout.write(bytes);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
【问题讨论】:
-
您可以通过网络浏览器从同一台机器访问相同的 URL 吗?可能存在代理问题。
-
是的,我可以从我机器上的网络浏览器访问相同的 URL。
-
您的网络浏览器设置中是否有任何代理设置?
-
你身边可能有防火墙拒绝Java进程。
-
您是仅在 servlet 中遇到此问题,还是在普通 Java 应用程序中也遇到此问题?如果是第一个,请提及 servletcontainer 的品牌/版本。如果是最后一个,那么
servlets标记是不必要的。