I'm trying to create a simple Java program that create an HTTP request to a HTTP server hosted locally, by using Socket.
This is my code:
try
    {
        //Create Connection
        Socket s = new Socket("localhost",80);
        System.out.println("[CONNECTED]");
        DataOutputStream out = new DataOutputStream(s.getOutputStream());
        DataInputStream in   = new DataInputStream(s.getInputStream());
        String header = "GET / HTTP/1.1\n"
                +"Host:localhost\n\n";
        byte[] byteHeader = header.getBytes();
        out.write(byteHeader,0,header.length());
        String res = "";
        /////////////READ PROCESS/////////////
        byte[] buf = new byte[in.available()];
        in.readFully(buf);
        System.out.println("\t[READ PROCESS]");
        System.out.println("\t\tbuff length->"+buf.length);
        for(byte b : buf)
        {
            res += (char) b;
        }
        System.out.println("\t[/READ PROCESS]");
        /////////////END READ PROCESS/////////////
        System.out.println("[RES]");
        System.out.println(res);
        System.out.println("[CONN CLOSE]");
        in.close();
        out.close();
        s.close();
    }catch(Exception e)
    {
        e.printStackTrace();
    }
But by when I run it the Server reponse with a '400 Bad request error'. What is the problem? Maybe some HTTP headers to add but I don't know which one to add.
 
     
     
    