Here's the code: ================ package at.vtg.httpclient; // or whatever you want ;-)
import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.HttpMethodBase; import org.apache.commons.httpclient.methods.EntityEnclosingMethod; import org.apache.commons.httpclient.URI; import org.apache.commons.httpclient.URIException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * In this class are only methods to copy a HttpMethod: PUT, GET, POST, DELETE, TRACE, ... * * @author Thomas Mathis * @version $Revision: 1.4 $ */ public class HttpMethodUtil { private static Log log = LogFactory.getLog(HttpMethodUtil.class); private static void copyEntityEnclosingMethod( EntityEnclosingMethod m, EntityEnclosingMethod copy ) throws java.io.IOException { log.debug( "copy EntityEnclosingMethod" ); copy.setRequestBody( m.getRequestBodyAsString() ); copy.setUseExpectHeader(m.getUseExpectHeader()); } private static void copyHttpMethodBase(HttpMethodBase m, HttpMethodBase copy) { log.debug( "copy HttpMethodBase" ); if ( m.getHostConfiguration() != null ) { copy.setHostConfiguration( new HostConfiguration( m.getHostConfiguration() ) ); } copy.setHttp11(m.isHttp11()); copy.setStrictMode(m.isStrictMode()); } /** * Clones a HttpMethod. <br> * <b>Attention:</b> You have to clone a method before it has been executed, because the URI * can change if followRedirects is set to true. * * @param m the HttpMethod to clone * * @return the cloned HttpMethod, null if the HttpMethod could not be instantiated * * @throws java.io.IOException if the request body couldn't be read */ public static HttpMethod clone(HttpMethod m) throws java.io.IOException { log.debug( "clone HttpMethod" ); HttpMethod copy = null; // copy the HttpMethod try { copy = (HttpMethod) m.getClass().newInstance(); } catch (InstantiationException iEx) { } catch (IllegalAccessException iaEx) { } if ( copy == null ) { return null; } copy.setDoAuthentication(m.getDoAuthentication()); copy.setFollowRedirects(m.getFollowRedirects()); copy.setPath( m.getPath() ); copy.setQueryString(m.getQueryString()); // clone the headers Header[] h = m.getRequestHeaders(); int size = (h == null) ? 0 : h.length; for (int i = 0; i < size; i++) { copy.setRequestHeader(new Header(h[i].getName(), h[i].getValue())); } copy.setStrictMode(m.isStrictMode()); if ( m instanceof HttpMethodBase ) { copyHttpMethodBase( (HttpMethodBase) m, (HttpMethodBase) copy ); } if ( m instanceof EntityEnclosingMethod ) { copyEntityEnclosingMethod( (EntityEnclosingMethod) m, (EntityEnclosingMethod) copy ); } return copy; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]