Hey,

Due to our search engine for one of our sites being hosted on a
separate domain, we can't do AJAX requests to the original domain.
This isn't much of a problem, as I figured I'd just use HttpClient to
make a servlet which is a proxy to the Apache server.

So... to ensure session state is still maintained, which is a
requirement, I will just proxy the cookies the client sends me as
well.

I made the following method (the connection manager and parameters are
final static members of the class):

  private HttpEntity proxyRequest(String baseUrl, String
getParameters, Cookie[] cookies) throws Exception
  {
    DefaultHttpClient httpClient = new DefaultHttpClient(connManager,
httpParams);
    HttpContext context = new BasicHttpContext(httpClient.getDefaultContext());
    HttpGet request = new HttpGet(baseUrl + basketUri);
    CookieStore cookieStore = httpClient.getCookieStore();

    for (Cookie c : cookies)
    {
      BasicClientCookie newCookie = new BasicClientCookie(c.getName(),
c.getValue());
      newCookie.setDomain(c.getDomain());
      newCookie.setPath(c.getPath());
      newCookie.setComment(c.getComment());
      if (c.getMaxAge() > 0)
      {
        long expiryTime = new Date().getTime() + c.getMaxAge();
        newCookie.setExpiryDate(new Date(expiryTime));
      }
      cookieStore.addCookie(newCookie);
    }

    HttpResponse response = httpClient.execute(request, context);
    HttpEntity entity = response.getEntity();

    if (entity == null)
    {
      throw new NoHttpResponseException("Basket request failed to
return a response.");
    }

    return entity;
  }

The Cookie[] I pass in, is an array of cookies are received by
HttpServletRequest.getCookies().

I stepped the code, and the addCookie() method is definitely being
called. When recieving the response on the other side, I make a dump
of all received cookies to the output. This output is received by
HttpClient and returned to the servlet's output stream.

Then what I'm getting is a dump of "0" cookies. So the request is
successful, but the cookies added to the store is not being sent to
the client.

Can anyone see what I'm doing wrong?

-- 
Quintin Beukes

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to