For anyone interested in using HttpMultiClient in a scripting fashion, 
there is work underway in the Latka project to make httpclient accessible 
via Jelly.

See 
http://cvs.apache.org/viewcvs.cgi/*checkout*/jakarta-commons/latka/src/jelly/latka.jelly?rev=HEAD&content-type=text/plain
 
for a working example.
--
dIon Gillard, Multitask Consulting
Work:      http://www.multitask.com.au
Developers: http://adslgateway.multitask.com.au/developers


jsdever wrote on 07/11/2002 11:33:36 AM:

> Walden,
> 
> Here is some client code that I had been playing with (attached).  Its
> far from production, but it is an example of using HttpClient.
> 
> 
> 
> 
> 
> Walden Mathews wrote:
> > 
> > Okay thanks (I was *almost* there).
> > 
> > > -----Original Message-----
> > > From: Martin van den Bemt [mailto:[EMAIL PROTECTED]]
> > > Sent: Wednesday, July 10, 2002 5:51 PM
> > > To: Jakarta Commons Users List
> > > Subject: RE: [Httpclient] Samples?
> > >
> > >
> > > Do a cvs checkout of the jakart-commons/httpclient
> > > and look in the src/test directory..
> > > btw they are all based on junit (of course ;))
> > >
> > > Mvgr,
> > > Martin
> > >
> > > On Wed, 2002-07-10 at 23:46, Walden Mathews wrote:
> > > > That sounds promising.  Where would I find them?  Sorry if it's
> > > > obvious, but I browsed around for a while...
> > > >
> > > > Walden
> > > >
> > > > > -----Original Message-----
> > > > > From: Martin van den Bemt [mailto:[EMAIL PROTECTED]]
> > > > > Sent: Wednesday, July 10, 2002 5:38 PM
> > > > > To: Jakarta Commons Users List
> > > > > Subject: Re: [Httpclient] Samples?
> > > > >
> > > > >
> > > > > Maybe a copy & paste from the testcases can help..
> > > > >
> > > > > Mvgr,
> > > > > Martin
> > > > >
> > > > > On Wed, 2002-07-10 at 23:33, Walden Mathews wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I need to get a small demo up and running quickly.  Can
> > > > > someone point
> > > > > > me to some samples?  I promise to read the API docs
> > > > > carefully in due time.-)
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Walden Mathews
> > > > > > ILX Systems
> > > > > > 111 Fulton St. 3rd Floor
> > > > > > New York, NY 10038
> > > > > > Phone (212) 510-3121
> > > > > > Fax (212) 520-3800
> > > > > >
> > > > > > --
> > > > > > To unsubscribe, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > > For additional commands, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > >
> > >
> > 
> > --
> > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > 
> > --
> > To unsubscribe, e-mail:   <
> mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <
> mailto:[EMAIL PROTECTED]>
> import org.apache.commons.httpclient.*;
> import org.apache.commons.httpclient.methods.*;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> 
> public class httpuser
> {
>    static String host = "127.0.0.1";
>    static int port = 80;
>    static HttpClient httpclient;
> 
>    static String className = "httpuser";
>    static Log logger = LogFactory.getLog(className);
> 
>    public static void main(String[] args)
>    {
>       httpclient = new HttpClient();
>       HttpState httpstate = new HttpState();
>       //httpstate.setCredentials("Protected Section", new 
> UsernamePasswordCredentials("user0", "user0"));
>       httpclient.setState(httpstate);
>       httpclient.startSession(host, port);
>       httpclient.startSession(host, port, new 
> UsernamePasswordCredentials("user0", "user0"));
> 
>       GetMethod getmethod0 = new 
GetMethod("/~jsdever/protected/file0.txt");
>       handleHttpRequest(getmethod0);
>       handleHttpResponse(getmethod0);
> 
>       PostMethod postmethod = new 
PostMethod("/~jsdever/protected/file1.txt");
>       postmethod.addParameter("name", "value1");
>       System.out.println(postmethod.getParameter("name"));
>       postmethod.addParameter("name", "value2");
>       System.out.println(postmethod.getParameter("name"));
>       handleHttpRequest(postmethod);
>       handleHttpResponse(postmethod);
> 
>       try{
>     httpclient.endSession();
>       }catch (Exception ex){
>     logger.error("Exception thrown", ex);
>       }
>    }
> 
> 
>    static void handleHttpRequest(HttpMethod httpmethod)
>    {
>       String methodName = "handleHttpRequest";
> 
>       //check for a bogus argument
>       if (httpmethod == null){
>     logger.warn("httpmethod argument is null");
>     return;
>       }
>       else if (httpmethod.hasBeenUsed()){
>     logger.warn("httpmethod has already been executed");
>     return;
>       }
> 
>       //perform the http method execution
>       try{
>     httpclient.executeMethod(httpmethod);
>       }catch (java.io.IOException ioe){
>     logger.error("Exception thrown", ioe);
>       }catch (HttpException httpe){
>     logger.error("Exception thrown", httpe);
>       }
> 
>       //log the headers
>       if (logger.isDebugEnabled()){
>     StringBuffer sb = new StringBuffer();
>     sb.append(httpmethod.getName());
>     sb.append(' ');
>     sb.append(httpmethod.getPath());
>     sb.append('?');
>     sb.append(httpmethod.getQueryString());
>     sb.append('\n');
>     Header[] headers = httpmethod.getRequestHeaders();
>     sb.append("HTTP Request Headers\n");
>     for (int i=0; i<headers.length; i++){
>        sb.append(headers[i]);
>     }
>     logger.debug(sb.toString());
>       }
>    }
> 
> 
> 
>    static void handleHttpResponse(HttpMethod httpmethod)
>    {
>       String methodName = "handleHttpResponse";
> 
>       //check for a bogus argument
>       if (httpmethod == null){
>     logger.warn("httpmethod argument is null");
>     return;
>       }
>       else if (!httpmethod.hasBeenUsed()){
>     logger.warn("httpmethod has not been executed yet");
>     return;
>       }
> 
>       int statusCode = httpmethod.getStatusCode();
>       String statusText = httpmethod.getStatusText();
>       logger.debug("Webserver returned status: " + statusCode + " - 
> " + statusText);
>       if (statusCode >= 300){
>     logger.warn("Error status code returned from webserver");
>       }
> 
>       //log the headers if required
>       if (logger.isDebugEnabled()){
>     Header[] headers = httpmethod.getResponseHeaders();
>     StringBuffer sb = new StringBuffer();
>     sb.append("HTTP Response Headers\n");
>     for (int i=0; i<headers.length; i++){
>        sb.append(headers[i]);
>     }
>     logger.debug(sb.toString());
>       }
> 
>       //deal with the cookies
>       Header cookieHeader = httpmethod.getResponseHeader("Set-Cookie");
>       if (cookieHeader != null){
>     try{
>        Cookie[] cookies = Cookie.parse(host, port, 
> httpmethod.getPath(), cookieHeader);
>        logger.debug(cookieHeader);
>        for (int i=0; i<cookies.length; i++){
>           httpclient.getState().addCookie(cookies[i]);
>        }
>     }catch (HttpException httpe){
>        logger.warn("Failed to parse the cookie header: " + 
> httpe.getMessage());
>     }catch (Exception ex){
>        logger.warn("Exception thrown when handling cookies", ex);
>     }
>       }
> 
>    }
> }
> 
> --
> To unsubscribe, e-mail: 
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
<mailto:[EMAIL PROTECTED]>

Reply via email to