request for clientside post+cookie example (sorry if it hits the list twice)

Hello,

working on a java interface for a html site I have a lot questions about cookie handling.
There are a lot snippets of sourcecode posted on the mailing list, but they are old (of 2000 and earlier) and/or just not working.

Can someone please give me an example about how the cookies are correct handled? (the way it is ment?)

thanks in advance!

cheers
Harmen Jeurink

The way i do it now: (ugly!) (just to illustrate)

actionPerformed{
   userName = tfUserName.getText();
   password = tfPassword.getText();
   String redirectURL = login(userName, password);
   displayHTML(redirectURL);
}

private String login(String userId, String password){ 
// login on site 
// and returns redirect URL, sets global String cookie with cookie data

  Request request = client.createRequest();
  HttpSetCookieList cookieList1, cookieList2;
  Reply reply;
  request.setMethod("POST");
  request.setUserAgent(USER_AGENT);

  String postdata = "uid="+ userId + "& pwd="+password; // post data
  request.setContentLength(postdata.length());

  try {
   request.setURL(new URL(HOST + LOGON_SITE));
   MimeType mt = new MimeType("application/" + "x-www-form-urlencoded");
   request.setContentType(mt);
   reply = client.runRequest(request);
   HeaderValue cookieValue = reply.getHeaderValue("set-cookie"); // retrieve value of the cookie set after successfull login
   HeaderValue redirectURLHeader = reply.getHeaderValue("location:"); // retrieve redirect url 
   
    cookieList1 = (HttpSetCookieList) cookieValue.getValue(); 
    cookieList2 = (HttpSetCookieList) redirectURLHeader.getValue(); // here it starts to get ugly...

    cookie=cookieList1.toString(); // cookie value into global string, since we cannot return more than 1 parameter in java
    return cookieList2.toString();  // return redirect URLHeader
  }
  catch bloks{}
  return ("IOException or HttpException or MimeTypeFormatException");
 }

private void displayHTML(String redirectURL) {
  Request request = client.createRequest();
  Reply reply;
  request.setMethod("GET");
  request.setUserAgent(USER_AGENT + "\r\nCookie: "+cookie); // add cookie in http Header, and even more uglier
  try {
    request.setURL(new URL(redirectURL));
    MimeType mt = new MimeType("application/" + "x-www-form-urlencoded");
    request.setContentType(mt);
    reply = client.runRequest(request);
    // do something with the reply
   }
 }

Received on Saturday, 12 June 2004 11:10:16 UTC