我无法使用特定的网络资源打开URLConnection。我正在
“java.net.ConnectException: Connection timed out:
”。是因为该域阻止了直接URL连接?如果是这样,他们如何阻止这个?下面是我写的代码片段。
import java.io. ; import 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();
}
}
}
答案 0 :(得分:1)
您可能正在浏览器中使用代理设置来访问Yahoo主页,该主页解释了它在浏览器中运行的原因,而不是代码中的原因。您需要Java应用程序的代理配置。
最简单的方法是在运行代码时设置系统属性http.proxyHost
和http.proxyPort
(在Eclipse中或从命令行运行时只添加-Dhttp.proxyHost=your.host.com -Dhttp.proxyPort=80
)并且你应该是好的去。从浏览器配置/设置中选择代理设置。
编辑:This link在处理Java代理时解释可能的解决方案做得不错。
答案 1 :(得分:0)
试试这个,它对我来说很好,返回索引页。
String serviceUrl = "http://yahoo.com";
HttpURLConnection serviceConnection = (HttpURLConnection) new URL(serviceUrl).openConnection();
serviceConnection.addRequestProperty("User-Agent", "blah"); //some sites deny access to some pages when User-Agent is Java
BufferedReader in = new BufferedReader(new InputStreamReader(serviceConnection.getInputStream()));