这是一个初学者的问题。
在执行来自使用URL章节的示例代码时,会抛出以下异常:
Exception in thread "main" java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:189) ...
问题出现在openStream() 方法上。
这里是代码:
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
in.close();
}
}
我知道有关于这个主题的类似帖子,但是我找不到适合我的答案。
我已经尝试过的:
- 按照这里建议,我已经设置了代理主机。命令为:java -Dhttp.proxyHost=dslb-088-071-100-199.pools.arcor-ip.net,我还尝试在URLReader类的第一行插入System.setProperty("http.proxyHost", "dslb-088-071-100-199.pools.arcor-ip.net");。
- 我尝试使用JSoup HTML解析器和org.apache.commons.io.FileUtils.copyURLToFile(URL, File)方法来获得类似的结果。
无论我尝试什么,我总是会遇到同样的错误:30秒左右什么都不会发生,然后就会抛出上述的SocketException异常。
我不知道如何继续解决这个问题。有用的信息将是在连接重置之前的30秒背景中发生了什么。
那么,究竟是什么原因导致了这个异常?
最小的提示都可以有所帮助!谢谢!