我正在编写一个必须在我的工作环境中运行的java程序。 以下是我的代码片段:
URL url = new URL("www.google.com");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
在我的家庭网络上,这完全正常,但在商业网络上,我收到此错误:
java.net.SocketException:软件导致连接中止:recv 在java.net.SocketInputStream.socketRead0(本机方法)处失败 java.net.SocketInputStream.read(未知来源)at java.net.SocketInputStream.read(未知来源)at java.io.BufferedInputStream.fill(未知来源)at java.io.BufferedInputStream.read1(未知来源)at java.io.BufferedInputStream.read(未知来源)at sun.net.www.http.HttpClient.parseHTTPHeader(未知来源)at sun.net.www.http.HttpClient.parseHTTP(未知来源)at sun.net.www.http.HttpClient.parseHTTP(未知来源)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知 来自)java.net.URL.openStream(未知来源)at Conquerer.run(Conquerer.java:44)
我很确定这与网络设置有关。但是,当我编写C#程序时,我可以使用WebClient.UseDefaultCredentials(true);
来解决问题。
是否有我可以用于我的java程序的版本?
以下是一些可能有用的细节:
答案 0 :(得分:1)
从详细信息#1开始,我猜测你是公司使用代理。 Firefox,Chrome,IE等的原因是由IT部门设置的。
检查您的代理设置in each browser,看看是否有任何设置。
我对C#工作原理的猜测是代理设置在IE中,而C#正在将它们拉进去。我也会去你的IT部门寻求帮助,因为问题几乎肯定与网络设置有关。