public static void main(String args[])
{
   try{
   
URL url=new URL("http://www.csdn.net");
    Socket socket=new Socket(url.getHost(),80);
    BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
    PrintWriter out=new PrintWriter(socket.getOutputStream());
    StringBuffer sb=new StringBuffer();
    out.println("GET "+url.getFile()+" HTTP/1.1\r\n");
    out.println("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, */* \r\n");
        out.println("Accept-Language: zh-cn\r\n");
        out.println("deflateUser-Agent: Mozilla/4.0\r\n");
    out.println("Connection: Keep-Alive\r\n");
    out.println("Host:"+url.getHost()+"\r\n");
    out.println("Connection: close \r\n\r\n");
    
    out.flush();
    String str="html";
String html="";
while(!str.equals(""))
{
str=in.readLine();
html=html+str;
    }
    System.out.println(html);
    socket.close();
    }
    catch(IOException e)
    {
     System.out.println(e.toString());
    }
   
        
}

解决方案 »

  1.   

    e 这个怎么这么像用 telnet 刺探 IIS 信息啊?大哥!
    我感觉能这么用吗?
    两者是一个概念吗?
    telnet 是Internet的一个服务,你用Socket连接是不是一个概念啊?
      

  2.   

    你既用了 out.println(),又在字符串里用了 "\r\n",所以,这是个非法的 HTTP 请求。
      

  3.   

    public static void main(String[] args) throws IOException {
                String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
                data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
            
                // Create a socket to the host
                String hostname = "www.csdn.net";
                int port = 80;
                InetAddress addr = InetAddress.getByName(hostname);
                Socket socket = new Socket(addr, port);
            
                BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
                wr.write("GET / HTTP/1.0\r\n\r\n");
                wr.flush();
            
                // Get response
                BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                String line;
                while ((line = rd.readLine()) != null) {
                    System.out.println(line);
                }
                wr.close();
                rd.close();
                socket.close();
            }
      

  4.   

    还有一点,应该把
       out.println("GET "+url.getFile()+" HTTP/1.1\r\n");
    改成
       out.println("GET /"+url.getFile()+" HTTP/1.1");
      

  5.   

    zhmt(不爽你就用分砸我!!!) 的方法可用
    maquan('ma:kju)我照你的方法修改还是不行,发生 Connection reset 异常!