java - 网络/代理身份验证(WebClient.UseDefaultCredentials 替代方案)

标签 java c# networking proxy

我正在用java编写一个程序,该程序必须在我的工作环境中运行。 这是我的代码片段:

URL url = new URL("www.google.com");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

在我的家庭网络上,这工作得很好,但在企业网络上,我收到此错误:

java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.URL.openStream(Unknown Source) at Conquerer.run(Conquerer.java:44)

我很确定这与这里的网络设置有关。但是,当我编写 C# 程序时,我可以使用 WebClient.UseDefaultCredentials(true); 来解决该问题。 有没有一个版本可以用于我的 java 程序?

<小时/>

以下是一些可能有帮助的详细信息:

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

最佳答案

根据细节#1,我猜您的公司使用了代理。 Firefox、Chrome、IE 等之所以是由 IT 部门设置的。

检查您的代理设置 in each browser ,并查看是否已设置任何内容。

我猜测 C# 起作用的原因是代理设置位于 IE 中,而 C# 正在将这些设置拉入。我还会向您的 IT 部门寻求帮助,因为问题几乎肯定与网络设置有关。

关于java - 网络/代理身份验证(WebClient.UseDefaultCredentials 替代方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24312125/

相关文章:

Java 网络、错误检查和数据库

c# - 为什么Activemq Consumer即使在线也收不到消息?

c# - 如何在 C#.NET 中不同类型的对象之间进行深度复制

networking - 网络游戏中如何防止跳位?

networking - TCP 和 Go Back N 的区别

java - (Java) 从文本文件中读取

java - 计算java中的评论数

java - 尝试获取字符串是否有作者、标题、出版商等

c# - 忽略大小写和文化的 String.Contains()

ruby - 测量每秒的出站请求?