2010-05-08 6 views
2

Je fais face à un projet sockets HTTP, je dois envoyer 2 HTTP GET demandes de mon code java comme ceci:Accepter les cookies dans le code Java?

  • Demande 1: appel de recherche X
  • page X est un cookie.
  • Demande 2: appel à la page Y

que vous voyez pour accéder au contenu de la page Y i cookie doit être présent ...

comment accepter un cookie à partir du code java s'il vous plaît?

Voici un exemple de requête envoyée:

 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's 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); 

     }  
+1

au moins poster le code que vous avez écrit jusqu'ici, plutôt que de nous demander de tout faire pour vous – skaffman

+1

Bonjour, merci de répondre, je ne vous demande pas de tout faire non, j'ai juste besoin du nom de la classe/méthode responsable de cela :) J'ai mis à jour mon message désolé. – Youssef

+0

Pourquoi ré-implémentez-vous HTTP, quand Java a une API HTTP parfaitement bonne? – skaffman

Répondre

1

Je fortement vous recommandons d'utiliser HttpClient ou d'une autre bibliothèque dédiée au traitement HTTP, plutôt que d'essayer de mettre en œuvre/interpréter le même protocole. Voir here pour savoir comment gérer les cookies en utilisant HttpClient.

Questions connexes