commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Carlson <>
Subject RE: [HttpClient] Post parameters
Date Wed, 05 Jun 2002 16:58:59 GMT
Hi Marc,

You asked for suggestions.  As I said in my previous note,
chaining to other instances of HttpMethod would probably
help improve the readability and maintainability of the
HttpMethodBase class.  

Here are more specifics on the implementation I would

1) Have an ivar defined something like:
         private HttpMethod redirectedTo = null;
2) Instead of looping inside #execute to handle redirects, 
   populate the "redirectedTo" ivar with a new HttpMethod 
   impl with the results of a new HttpMethod method like 
   this pseudocode:

   GetMethod implementation:
      public HttpMethod createRedirectMethod(String path) {
        GetMethod gm = new GetMethod(path);
        // assuming requestHeaders can be made protected
        gm.requestHeaders = this.requestHeaders;
        return gm;
   PostMethod implementation:
      public HttpMethod createRedirectMethod(String path) {
        if (useOfficialRedirectSpec) {
            PostMethod pm = new PostMethod(path);
            pm.requestHeaders = this.requestHeaders;
            pm.parameters = this.parameters;
            return pm;
        } else {
            GetMethod gm = new GetMethod(path);
            gm.requestHeaders = this.requestHeaders;
            return gm;
   This will do several things:  
     a) Keep knowledge of subclasses out of the abstract 
     b) Avoid adding any more if statements to #execute.
     c) Allow for other subclasses that can define their 
        own behavior without modifying the superclass.
3) Change the get methods (like #getResponseBody and   
   #getResponseCode) to forward the request to the 
   "redirectedTo" instance if it's not null. Otherwise 
   return your own values.  This will allow for cleaner
   handling of multiple redirects and fewer bugs. 

Jonathan Carlson
Minneapolis, Minnesota

Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message