# Class WebRequest

java.lang.Object
com.meterware.httpunit.WebRequest

Direct Known Subclasses:
  `HeaderOnlyWebRequest, MessageBodyWebRequest`

public abstract class WebRequest extends Object
A request sent to a web server.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected String`
`method`
the HTTP method defined for this request e.g.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`WebRequest(WebForm sourceForm, com.meterware.httpunit.ParameterHolder parameterHolder, SubmitButton button, int x, int y)`
Constructs a web request from a form.
`protected`
`WebRequest(WebRequest baseRequest, String urlString, String target)`
Constructs a web request using a base request and a relative URL string.
`protected`
`WebRequest(WebRequestSource requestSource, com.meterware.httpunit.ParameterHolder parameterHolder)`
`protected`
`WebRequest(WebResponse referer, Element sourceElement, URL urlBase, String urlString, String target)`
Constructs a web request using a base URL, a relative URL string, and a target.
`protected`
`WebRequest(String urlString)`
Constructs a web request using an absolute URL string.
`protected`
`WebRequest(URL urlBase, String urlString)`
Constructs a web request using a base URL and a relative URL string.
`protected`
`WebRequest(URL urlBase, String urlString, FrameSelector frame, String target)`
Constructs a web request using a base URL, a relative URL string, and a target.
`protected`
`WebRequest(URL urlBase, String urlString, String target)`
Constructs a web request using a base URL, a relative URL string, and a target.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`completeRequest(URLConnection connection)`
Performs any additional processing necessary to complete the request.
`protected final String`
`getCharacterSet()`
Returns the character set required for this request.
`protected String`
`getContentType()`
Returns the content type of this request.
`Dictionary`
`getHeaders()`
Returns a copy of the headers to be sent with this request.
`String`
`getMethod()`
`String`
`getParameter(String name)`
Returns the value of a parameter in this web request.
`protected final com.meterware.httpunit.ParameterHolder`
`getParameterHolder()`
`String[]`
`getParameterValues(String name)`
Returns the multiple default values of the named parameter.
`String`
`getQueryString()`
Returns the query string defined for this request.
`String[]`
`getRequestParameterNames()`
Returns an array of all parameter names defined as part of this web request.
`String`
`getTarget()`
Returns the target for this web request.
`URL`
`getURL()`
Returns the final URL associated with this web request.
`protected final URL`
`getURLBase()`
`protected String`
`getURLString()`
`boolean`
`isFileParameter(String name)`
Returns true if the specified parameter is a file field.
`protected boolean`
`isMimeEncoded()`
Returns true if this request is to be MIME-encoded.
`protected boolean`
`maySelectFile(String parameterName)`
Returns true if selectFile may be called with this parameter.
`void`
`removeParameter(String name)`
Removes a parameter from this web request.
`void`
`selectFile(String parameterName, File file)`
Sets the file for a parameter upload in a web request.
`void`
`selectFile(String parameterName, File file, String contentType)`
Sets the file for a parameter upload in a web request.
`void`
`selectFile(String parameterName, String fileName, InputStream inputStream, String contentType)`
Sets the file for a parameter upload in a web request.
`void`
`setHeaderField(String headerName, String headerValue)`
Sets the value of a header to be sent with this request.
`void`
`setImageButtonClickPosition(int x, int y)`
Specifies the click position for the submit button.
`void`
`setParameter(String parameterName, com.meterware.httpunit.protocol.UploadFileSpec[] files)`
Sets the multiple values of a file upload parameter in a web request.
`void`
`setParameter(String name, String value)`
Sets the value of a parameter in a web request.
`void`
`setParameter(String name, String[] values)`
Sets the multiple values of a parameter in a web request.
`String`
`toString()`
`protected void`
`writeMessageBody(OutputStream stream)`
Writes the contents of the message body to the specified stream.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### method

protected String method
the HTTP method defined for this request e.g. DELETE,OPTIONS,HEAD

## Constructor Details

### WebRequest

protected WebRequest(String urlString)
Constructs a web request using an absolute URL string.

### WebRequest

protected WebRequest(URL urlBase, String urlString)
Constructs a web request using a base URL and a relative URL string.

### WebRequest

protected WebRequest(WebRequest baseRequest, String urlString, String target) throws MalformedURLException
Constructs a web request using a base request and a relative URL string.

Throws:
  `MalformedURLException`

### WebRequest

protected WebRequest(URL urlBase, String urlString, String target)
Constructs a web request using a base URL, a relative URL string, and a target.

### WebRequest

protected WebRequest(WebResponse referer, Element sourceElement, URL urlBase, String urlString, String target)
Constructs a web request using a base URL, a relative URL string, and a target.

### WebRequest

protected WebRequest(URL urlBase, String urlString, FrameSelector frame, String target)
Constructs a web request using a base URL, a relative URL string, and a target.

### WebRequest

protected WebRequest(WebForm sourceForm, com.meterware.httpunit.ParameterHolder parameterHolder, SubmitButton button, int x, int y)
Constructs a web request from a form.

Parameters:
  `sourceForm` - - the WebForm to startFrom
  `parameterHolder` - - the parameter holder
  `button` - - the submit button
  `x` - - x position
  `y` - - y position

### WebRequest

protected WebRequest(WebRequestSource requestSource, com.meterware.httpunit.ParameterHolder parameterHolder)

## Method Details

### setHeaderField

public void setHeaderField(String headerName, String headerValue)
Sets the value of a header to be sent with this request. A header set here will override any matching header set in the WebClient when the request is actually sent.

Parameters:
  `headerName` - - the name of the header
  `headerValue` - - the value to be set

### getHeaders

public Dictionary getHeaders()
Returns a copy of the headers to be sent with this request.

Returns:
  the dictionary of headers

### getURL

public URL getURL() throws MalformedURLException
Returns the final URL associated with this web request.

Returns:
  the Uniform Resource Locator for this Web request
Throws:
  `MalformedURLException` - if the URL is not o.k.

### getTarget

public String getTarget()
Returns the target for this web request.

### getMethod

public String getMethod()

Returns:
  the method

### getQueryString

public String getQueryString()
Returns the query string defined for this request. The query string is sent to the HTTP server as part of the request header. This default implementation returns an empty string.

### setParameter

public void setParameter(String name, String value)
Sets the value of a parameter in a web request.

### setParameter

public void setParameter(String name, String[] values)
Sets the multiple values of a parameter in a web request.

### setParameter

public void setParameter(String parameterName, com.meterware.httpunit.protocol.UploadFileSpec[] files)
Sets the multiple values of a file upload parameter in a web request.

### setImageButtonClickPosition

public void setImageButtonClickPosition(int x, int y) throws IllegalRequestParameterException
Specifies the click position for the submit button. When a user clioks on an image button, not only the name and value of the button, but also the position of the mouse at the time of the click is submitted with the form. This method allows the caller to override the position selected when this request was created.

Throws:
  `IllegalRequestParameterException` - thrown if the request was not created from a form with an image button.

### isFileParameter

public boolean isFileParameter(String name)
Returns true if the specified parameter is a file field.

### selectFile

public void selectFile(String parameterName, File file)
Sets the file for a parameter upload in a web request.

### selectFile

public void selectFile(String parameterName, File file, String contentType)
Sets the file for a parameter upload in a web request.

### selectFile

public void selectFile(String parameterName, String fileName, InputStream inputStream, String contentType)
Sets the file for a parameter upload in a web request.

### getRequestParameterNames

public String[] getRequestParameterNames()
Returns an array of all parameter names defined as part of this web request.

Since:
  1.3.1

### getParameter

public String getParameter(String name)
Returns the value of a parameter in this web request.

Returns:
  the value of the named parameter, or empty string if it is not set.

### getParameterValues

public String[] getParameterValues(String name)
Returns the multiple default values of the named parameter.

### removeParameter

public void removeParameter(String name)
Removes a parameter from this web request.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### maySelectFile

protected boolean maySelectFile(String parameterName)
Returns true if selectFile may be called with this parameter.

### isMimeEncoded

protected boolean isMimeEncoded()
Returns true if this request is to be MIME-encoded.

### getContentType

protected String getContentType()
Returns the content type of this request. If null, no content is specified.

### getCharacterSet

protected final String getCharacterSet()
Returns the character set required for this request.

### completeRequest

protected void completeRequest(URLConnection connection) throws IOException
Performs any additional processing necessary to complete the request.

Throws:
  `IOException`

### writeMessageBody

protected void writeMessageBody(OutputStream stream) throws IOException
Writes the contents of the message body to the specified stream.

Throws:
  `IOException`

### getURLBase

protected final URL getURLBase()

### getURLString

protected String getURLString()

### getParameterHolder

protected final com.meterware.httpunit.ParameterHolder getParameterHolder()