org.apache.commons.httpclient.methods

Class PostMethod

public class PostMethod extends EntityEnclosingMethod

Implements the HTTP POST method.

The HTTP POST method is defined in section 9.5 of RFC2616:

The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions:

Since: 1.0

Version: $Revision: 480424 $

Author: Remy Maucherat Doug Sale Jeff Dever Ortwin Gl???ck Mike Bowler Oleg Kalnichevski

Field Summary
static StringFORM_URL_ENCODED_CONTENT_TYPE
The Content-Type for www-form-urlencoded.
Constructor Summary
PostMethod()
No-arg constructor.
PostMethod(String uri)
Constructor specifying a URI.
Method Summary
voidaddParameter(String paramName, String paramValue)
Adds a new parameter to be used in the POST request body.
voidaddParameter(NameValuePair param)
Adds a new parameter to be used in the POST request body.
voidaddParameters(NameValuePair[] parameters)
Adds an array of parameters to be used in the POST request body.
protected voidclearRequestBody()
Clears request body.
protected RequestEntitygenerateRequestEntity()
Generates a request entity from the post parameters, if present.
StringgetName()
Returns "POST".
NameValuePairgetParameter(String paramName)
Gets the parameter of the specified name.
NameValuePair[]getParameters()
Gets the parameters currently added to the PostMethod.
protected booleanhasRequestContent()
Returns true if there is a request body to be sent.
booleanremoveParameter(String paramName)
Removes all parameters with the given paramName.
booleanremoveParameter(String paramName, String paramValue)
Removes all parameter with the given paramName and paramValue.
voidsetParameter(String parameterName, String parameterValue)
Sets the value of parameter with parameterName to parameterValue.
voidsetRequestBody(NameValuePair[] parametersBody)
Sets an array of parameters to be used in the POST request body

Field Detail

FORM_URL_ENCODED_CONTENT_TYPE

public static final String FORM_URL_ENCODED_CONTENT_TYPE
The Content-Type for www-form-urlencoded.

Constructor Detail

PostMethod

public PostMethod()
No-arg constructor.

Since: 1.0

PostMethod

public PostMethod(String uri)
Constructor specifying a URI.

Parameters: uri either an absolute or relative URI

Since: 1.0

Method Detail

addParameter

public void addParameter(String paramName, String paramValue)
Adds a new parameter to be used in the POST request body.

Parameters: paramName The parameter name to add. paramValue The parameter value to add.

Throws: IllegalArgumentException if either argument is null

Since: 1.0

addParameter

public void addParameter(NameValuePair param)
Adds a new parameter to be used in the POST request body.

Parameters: param The parameter to add.

Throws: IllegalArgumentException if the argument is null or contains null values

Since: 2.0

addParameters

public void addParameters(NameValuePair[] parameters)
Adds an array of parameters to be used in the POST request body. Logs a warning if the parameters argument is null.

Parameters: parameters The array of parameters to add.

Since: 2.0

clearRequestBody

protected void clearRequestBody()
Clears request body.

This method must be overwritten by sub-classes that implement alternative request content input methods

Since: 2.0beta1

generateRequestEntity

protected RequestEntity generateRequestEntity()
Generates a request entity from the post parameters, if present. Calls generateRequestBody if parameters have not been set.

Since: 3.0

getName

public String getName()
Returns "POST".

Returns: "POST"

Since: 2.0

getParameter

public NameValuePair getParameter(String paramName)
Gets the parameter of the specified name. If there exists more than one parameter with the name paramName, then only the first one is returned.

Parameters: paramName name of the parameter

Returns: If a parameter exists with the name argument, the coresponding NameValuePair is returned. Otherwise null.

Since: 2.0

getParameters

public NameValuePair[] getParameters()
Gets the parameters currently added to the PostMethod. If there are no parameters, a valid array is returned with zero elements. The returned array object contains an array of pointers to the internal data members.

Returns: An array of the current parameters

Since: 2.0

hasRequestContent

protected boolean hasRequestContent()
Returns true if there is a request body to be sent.

This method must be overwritten by sub-classes that implement alternative request content input methods

Returns: boolean

Since: 2.0beta1

removeParameter

public boolean removeParameter(String paramName)
Removes all parameters with the given paramName. If there is more than one parameter with the given paramName, all of them are removed. If there is just one, it is removed. If there are none, then the request is ignored.

Parameters: paramName The parameter name to remove.

Returns: true if at least one parameter was removed

Throws: IllegalArgumentException When the parameter name passed is null

Since: 2.0

removeParameter

public boolean removeParameter(String paramName, String paramValue)
Removes all parameter with the given paramName and paramValue. If there is more than one parameter with the given paramName, only one is removed. If there are none, then the request is ignored.

Parameters: paramName The parameter name to remove. paramValue The parameter value to remove.

Returns: true if a parameter was removed.

Throws: IllegalArgumentException when param name or value are null

Since: 2.0

setParameter

public void setParameter(String parameterName, String parameterValue)
Sets the value of parameter with parameterName to parameterValue. This method does not preserve the initial insertion order.

Parameters: parameterName name of the parameter parameterValue value of the parameter

Since: 2.0

setRequestBody

public void setRequestBody(NameValuePair[] parametersBody)
Sets an array of parameters to be used in the POST request body

Parameters: parametersBody The array of parameters to add.

Throws: IllegalArgumentException when param parameters are null

Since: 2.0beta1

Copyright (c) 1999-2005 - Apache Software Foundation