如题,用java如何获取一个URL的页面内容?   
    
  比如:   GetHtml("http://news.sina.com.cn");   
  这样就能把新浪的新闻首页文件(html代码)。java该如何实现?   
    
  我不太会java,但是目前有这个需求,请详细下一代码,谢谢!   
  或者,至少说说要用那个类?在哪个包里? 

解决方案 »

  1.   


    package test;import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    //通过 java.net.Socket 类访问一个Web页面,并且返回结果
    public class Test { public static void main(String args1[]) 
    {  //判断参数是否为两个,正确的用法为 FirstSocket 网站 页面 
    String[] args={"news.sina.com.cn","/"};//取新浪当前主页的数据
    if(args.length!=2) 

    System.out.println("Usage : FirstSocket host page\r\nExample:FirstSocket www.google.com /"); 
    System.exit(0); 

    String strServer=args[0]; //取得第一个参数 
    String strPage = args[1]; //取得第二个参数  try 

    String hostname = strServer; 
    int port = 80; 
    InetAddress addr = InetAddress.getByName(hostname); 
    Socket socket = new Socket(addr, port); //建立一个Socket  //发送命令 
    BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8")); 
    wr.write("GET " + strPage + " HTTP/1.0\r\n"); 
    wr.write("HOST:" + strServer + "\r\n"); 
    wr.write("\r\n"); 
    wr.flush();  //接收返回的结果 
    BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
    String line="";
    StringBuffer buffer=new StringBuffer(""); 
    while ((line = rd.readLine()) != null) { 
    buffer.append(line+"\n");

    System.out.println(buffer.toString().split("\n\n")[1]);//这里主要是为了把上面无用数据去掉可能不合理。想想办法就好了。
    wr.close(); 
    rd.close(); 

    catch (Exception e) 

    System.out.println(e.toString());