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]>
