Coverage Report - org.apache.commons.latka.http.Request
 
Classes in this File Line Coverage Branch Coverage Complexity
Request
N/A
N/A
1
 
 1  
 /*
 2  
  * Copyright 1999-2002,2004 The Apache Software Foundation.
 3  
  * 
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  * 
 8  
  *      http://www.apache.org/licenses/LICENSE-2.0
 9  
  * 
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 
 17  
 package org.apache.commons.latka.http;
 18  
 
 19  
 import java.net.URL;
 20  
 import java.io.IOException;
 21  
 
 22  
 /**
 23  
  * A Latka Request represents a request from an HTTP server.
 24  
  *
 25  
  * @author <a href="mailto:dsale@us.britannica.com">Doug Sale</a>
 26  
  * @author <a href="mailto:mdelagra@us.britannica.com">Morgan Delagrange</a>
 27  
  * @author dIon Gillard
 28  
  */
 29  
 public interface Request {
 30  
 
 31  
     /** An integer representing the HTTP GET method */
 32  
     public static final int HTTP_METHOD_GET = 0;
 33  
     /** An integer representing the HTTP POST method */
 34  
     public static final int HTTP_METHOD_POST = 1;
 35  
     /** An integer representing the HTTP POST method */
 36  
     public static final int HTTP_METHOD_HEAD = 2;
 37  
 
 38  
     /**
 39  
      * Execute this HTTP request.  In the event of a 301 or 302,
 40  
      * this method may need to create a new Request, 
 41  
      * due to an idiosyncracy of
 42  
      * HttpClient.  In that case, the Response.getRequest()
 43  
      * method will return the actual Request that was executed.
 44  
      * This will probably be fixed at some point in the future.
 45  
      *
 46  
      * @return a Response object represnting the HTTP response to the request
 47  
      *
 48  
      * @throws IOException if the remote server could not be reached
 49  
      */
 50  
     Response execute() throws IOException;
 51  
 
 52  
     /**
 53  
      * Assigns a text label to this request.  This label
 54  
      * will be made available to a LatkaEventListener
 55  
      * during a test's execution
 56  
      * 
 57  
      * @return the label associated with this request
 58  
      */
 59  
     String getLabel();
 60  
 
 61  
     /**
 62  
      * Gets the URL that Latka will attempt to contact.  Note:
 63  
      * since Latka will respect most redirects, this may not
 64  
      * be the URL that returns the actual response.
 65  
      * 
 66  
      * @return the URL associated with this HTTP request
 67  
      */
 68  
     URL getURL();
 69  
 
 70  
     /**
 71  
      * Associate a parameter with this request.
 72  
      *
 73  
      * @param name  the name of the parameter
 74  
      * @param value the value of the parameter
 75  
      *
 76  
      */
 77  
     void addParameter(String name, String value);
 78  
 
 79  
     /**
 80  
      * Set all the parameters for the request.  Overrides
 81  
      * any parameters that have been already set by addParameter();
 82  
      * 
 83  
      * @param parameters
 84  
      *               all parameters for this request
 85  
      */
 86  
     void setParameters(Parameters parameters);
 87  
 
 88  
     /**
 89  
      * Get the parameters for the request, so that they can
 90  
      * be copied to another request if necessary.
 91  
      * 
 92  
      * @return parameters for this request
 93  
      */
 94  
     Parameters getParameters();
 95  
 
 96  
     /**
 97  
      * Sets a request header.
 98  
      * 
 99  
      * @param headerName header name
 100  
      * @param headerValue header value or null for a null header
 101  
      */
 102  
     void addHeader(String headerName, String headerValue);
 103  
 
 104  
     /**
 105  
      * Set all the headers for the request.  Overrides
 106  
      * any headers that have been already set by addHeader();
 107  
      * 
 108  
      * @param requestHeaders
 109  
      *               all headers for this request
 110  
      */
 111  
     void setHeaders(RequestHeaders requestHeaders);
 112  
 
 113  
     /**
 114  
      * Get the headers for the request, so that they can
 115  
      * be copied to another request if necessary.
 116  
      * 
 117  
      * @return headers for this request
 118  
      */
 119  
     RequestHeaders getHeaders();
 120  
 
 121  
     // getHeader method purposely ommitted.  HttpClient does not retain
 122  
     // header information after the request is submitted.
 123  
 
 124  
     /**
 125  
      * Retrieve the session associated with this request.
 126  
      *
 127  
      * @return a <code>Session</code> object
 128  
      */
 129  
     Session getSession();
 130  
 
 131  
     /**
 132  
      * The amount of time it took to execute the
 133  
      * request in milliseconds, or -1 if the request has not
 134  
      * been executed successfully
 135  
      *
 136  
      * @return time it took to execute the request in millis
 137  
      */
 138  
     int getRequestTiming();
 139  
 
 140  
     /**
 141  
      * Sets the basic authentication credentials for this request,
 142  
      * if any.
 143  
      * 
 144  
      * @param credentials user's identification
 145  
      */
 146  
     void setCredentials(Credentials credentials);
 147  
 
 148  
     /**
 149  
      * Return the credentials for this request
 150  
      * 
 151  
      * @return Request credentials
 152  
      */
 153  
     Credentials getCredentials();
 154  
 
 155  
     /**
 156  
      * Whether or not this request will instruct HttpClient
 157  
      * to follow local redirects automatically.
 158  
      * 
 159  
      * @return true if HttpClient will redirect a 301 or 302 response
 160  
      */
 161  
     boolean followRedirects();
 162  
 
 163  
     /**
 164  
      * Return the constant representing the HTTP method
 165  
      * to use in this request
 166  
      * 
 167  
      * @return HTTP method for this request
 168  
      */
 169  
     int getMethod();
 170  
 
 171  
     /**
 172  
      * Set the request body for a manual POST.  You may not
 173  
      * both set the request body and add parameters.
 174  
      * 
 175  
      * @param body   Body to POST
 176  
      */
 177  
     void setRequestBody(String body);
 178  
 
 179  
     /**
 180  
      * Sets the version of HTTP that is used in the request.
 181  
      * If the version of HTTP specified is not 1.0 or 1.1,
 182  
      * then the default of 1.1 will be used.
 183  
      *
 184  
      * @param version  HTTP version.
 185  
      */
 186  
     void setVersion(String version);
 187  
 
 188  
     /**
 189  
      * Get the HTTP version to use in this request
 190  
      * 
 191  
      * @return HTTP version for the request
 192  
      */
 193  
     String getVersion();
 194  
 
 195  
 }