得到了java.net.UnknownHostException,无法ping任何网站,但可以正常浏览

时间:2013-05-28 19:37:49

标签: java network-programming corporate

我正在尝试编写一个程序,通过HTTP将XML请求发送到供应商服务器,我使用了this link中的示例代码。

然后在运行代码时出现错误java.net.UnknownHostException 然后我尝试ping供应商主机,然后www.google.com。它们都不起作用。我得到了:

  

“ping请求无法找到主机www.google.com”

我正在使用公司网络。我可以正常浏览,下载并与供应商服务器通信。知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

您可以毫无问题地浏览网络,因为您的浏览器必须配置为使用代理。我们可以将JVM配置为使用相同的代理,然后成功打开HTTP连接。

打开网络浏览器的网络设置,记下代理服务器和端口。

  

对于Firefox,请转到工具>选项>高级>网络>连接>设置

现在,在打开HTTP连接之前,在Java程序中设置JVM以使用此代理。

System.getProperties().put("proxySet", "true");
System.getProperties().put("http.proxyHost", "10.1.0.11");
System.getProperties().put("http.proxyPort", "8080");

通过以上属性设置,您的程序应该能够打开连接。如果您的代理需要身份验证,那么您还必须使用Authenticator对象设置默认ProxyAuth

理想情况下,您应该在程序退出之前清除这些属性。

答案 1 :(得分:1)

您应该检查系统的网络设置。您需要确认已设置DNS服务器和默认网关。

如果您的网络配置正常,您可以尝试使用命令nslookup google.com 8.8.8.8。这将试图用他们的一个公共DNS服务器解决谷歌的IP。

答案 2 :(得分:0)

您最有可能在防火墙后面。

您的防火墙阻止您使用Jsoup等网络抓取工具连接到互联网。如果您在公司网络中,请尝试连接到Intranet站点。