Accept Cookies inside Java code?
I'm dealing with a HTTP sockets project, I have to send 2 HTTP GET requests from my java code like this :
- Request 1 : call page X
- Page X is setting a cookie.
- Request 2 : call to page Y
as you see to access the content of page Y i cookie must be present...
how to accept a cookie from java code please ?
Here's a sample sent request :
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);
}
I would strongly recommend using HttpClient or another library dedicated to HTTP processing, rather than trying to implement/interpret the protocol yourself. See here for how to handle cookies using HttpClient.
精彩评论