未知主机exception

try { { long startTime = System.currentTimeMillis(); String source="s"; String source1="s"; URL google = new URL("http://google.com/"); HttpURLConnection yc =(HttpURLConnection)google.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { source=source.concat(inputLine); } in.close(); yc.disconnect(); } long endTime1 = System.currentTimeMillis(); System.out.println("Total elapsed time in execution of method callMethod() is :"+ (endTime1-startTime)); } } 

当我通过命令提示我尝试上面的时候

 java.net.UnknownHostException: google.com at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at ScagntJavaHttp.httpMakeRequest(ScagntJavaHttp.java:185) at test.main(test.java:23) 

能帮助我解决这个问题吗?

我认为这是代理问题。 尝试查看您的浏览器中是否有代理定义,然后进行设置:

  ProxySelector.setDefault(new ProxySelector() { @Override public void connectFailed(URI uri, SocketAddress sa, IOException ioe) { throw new RuntimeException("Proxy connect failed", ioe); } @Override public List select(URI uri) { return Arrays .asList(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort))); } }); 

要查看您是否在IE中有代理定义,请转到“工具” – “Internet选项” – “连接” – “Lan设置”

当你得到java.net.UnknownHostException时,尝试从主机url中删除http://并检查你的互联网连接并且主机存在(谷歌可能是安全的…)