2011-05-24 156 views
1
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.<init>(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) 

可以在任何帮助我解决这个吗?

+2

你能ping通google.com吗?你在代理人后面吗? – 2011-05-24 13:20:39

+0

你有没有尝试添加'www'部分? – 2011-05-24 13:22:13

+0

没有连接到DNS?它与普通的IP地址一起工作吗? – 2011-05-24 13:24:23

回答

3

我认为这是一个代理问题。 尝试看看,如果你在你的浏览器有一个代理定义,然后将其设置:

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选项 - 连接 - 局域网设置

3

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

+0

非常感谢! – 2015-03-19 20:51:32

+1

如果删除http://,则会抛出java.net.MalformedURLException。 -1这个答案,没有帮助.. – 2016-07-27 16:01:06