Accept Cookies Inside Java Code?

I am dealing with an HTTP sockets project, I have to send 2 HTTP GET requests from my java code like this:

  • Request 1: Call Page X
  • Page X sets a cookie.
  • Request 2: Calling Page Y

as you can see, in order to access the content of page Y, the cookie must be present ...

how to accept cookie from java code please?

Here's a sample of the request sent:

      String sServer = "example.com";
          InetAddress inaddr = null;

          try {
              inaddr = InetAddress.getByName(sServer);
      }
      catch (UnknownHostException ex) { //The host could not be resolved.
              System.out.println(ex);
              System.out.println("Error resolving hostname for '" + sServer + "'.\n");

      }
      Socket sock = null;
      try {
              sock = new Socket(inaddr, 80);
      }
      catch (IOException ex) {
          System.out.println(ex);
          System.out.println("Could not create the socket.\n");

      }

try {
java.io.OutputStream os = sock.getOutputStream();
 String sPacket = "GET /xxx/xxx/xxx.do HTTP/1.1\n"                                                              + "Host: example.com\n"
+ "Connection: keep-alive\n"                                                    + "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5\n"
+ "Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8\n\n";

              os.write(sPacket.getBytes(), 0, sPacket.length());

              //Let get the answer.
              System.out.print("The server (" + sServer + ") answered: '");
              java.io.InputStream is = sock.getInputStream();
              byte[] buf = new byte[1024];
              is.read(buf, 0, buf.length);
              for (int i = 0; i < buf.length; i++) {
                      if (buf[i] == 0) break;
                      else
                          System.out.print(new Character((char)buf[i]));
              }
              System. out.print("'\n");

      }
      catch (Exception ex) {
          System.out.println(ex);

      }    

      

+2


a source to share


1 answer


I highly recommend using HttpClient or some other library dedicated to handling HTTP instead of trying to implement / interpret the protocol yourself. See here for how to handle cookies using HttpClient.



+1


a source







All Articles