网络/代理验证(WebClient.UseDefaultCredentials替代)

时间:2014-06-19 16:50:53

标签: java c# networking proxy

我正在编写一个必须在我的工作环境中运行的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程序的版本?


以下是一些可能有用的细节:

  • 我可以用手机连接到wifi,但我不能使用互联网。我可以ping通手机以确保它在网络上,但我无法上网。
  • 网络基于Windows。如果我使用我的个人笔记本电脑(Windows 8),我会在使用互联网之前弹出要求我输入凭据的弹出窗口。当我输入我的凭据时,我会上网(chrome),但java程序仍然无法连接。
  • 我没有使用代理服务器的网址
  • 我有管理员权限,在管理模式下运行它不能解决问题。

1 个答案:

答案 0 :(得分:1)

从详细信息#1开始,我猜测你是公司使用代理。 Firefox,Chrome,IE等的原因是由IT部门设置的。

检查您的代理设置in each browser,看看是否有任何设置。

我对C#工作原理的猜测是代理设置在IE中,而C#正在将它们拉进去。我也会去你的IT部门寻求帮助,因为问题几乎肯定与网络设置有关。