Java 网络/代理身份验证(WebClient.UseDefaultCredentials可选)
我正在用java编写一个程序,该程序必须在我的工作环境中运行。 以下是我的代码片段:Java 网络/代理身份验证(WebClient.UseDefaultCredentials可选),java,c#,networking,proxy,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.So
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(未知源代码)位于
java.net.SocketInputStream.read(未知源代码)位于
位于的java.io.BufferedInputStream.fill(未知源)
位于的java.io.BufferedInputStream.read1(未知源)
java.io.BufferedInputStream.read(未知源)位于
sun.net.www.http.HttpClient.parseHTTPHeader(未知源)位于
sun.net.www.http.HttpClient.parseHTTP(未知源)位于
sun.net.www.http.HttpClient.parseHTTP(未知源)位于
sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知
源代码),位于java.net.URL.openStream(未知源代码)
converser.run(converser.java:44)
我很确定这与这里的网络设置有关。但是,当我编写C#程序时,我可以使用WebClient.UseDefaultCredentials(true)代码>以修复该问题。
是否有一个版本可以用于我的java程序
以下是一些可能有帮助的详细信息:
- 我可以用手机连接到wifi,但我不能使用互联网。我可以ping手机以确保它在网络上,但我无法访问互联网
- 该网络基于windows。如果我使用我的个人笔记本电脑(windows 8),我会收到弹出窗口,要求我在使用互联网之前输入凭据。当我输入我的凭证时,我确实获得了internet(chrome),但java程序仍然无法连接
- 我没有正在使用的代理服务器的url
- 我有管理员权限,在管理模式下运行它并不能解决问题
根据细节1,我猜您的公司使用代理。Firefox、Chrome、IE等都是由IT部门设置的
检查您的代理设置,看看是否设置了任何内容
关于C#为什么工作,我的猜测是IE中的代理设置,而C#正在使用这些设置。我还想向您的IT部门寻求帮助,因为这个问题几乎肯定与网络设置有关。根据第一个细节,我不明白如果您无法访问internet,您怎么会得到响应(recv错误)。我可以访问internet(使用chrome、firefox、IE)但任何试图使用外部连接的程序都无法工作(如自我更新软件)。我特别说,“我确实可以上网(chrome),但java程序仍然无法连接。”