PostMethod (HttpClient Library (Version 3.1))
Date: 2016-03-09

org.apache.commons.httpclient.methods

## Class PostMethod

- java.lang.Object
- - org.apache.commons.httpclient.HttpMethodBase
  - - org.apache.commons.httpclient.methods.ExpectContinueMethod
    - - org.apache.commons.httpclient.methods.EntityEnclosingMethod
      - - org.apache.commons.httpclient.methods.PostMethod

- All Implemented Interfaces:
    HttpMethod

      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:
  > - Annotation of existing resources
  > - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles
  > - Providing a block of data, such as the result of submitting a form, to a data-handling process
  > - Extending a database through an append operation

  Since:
    1.0
  Version:
    $Revision: 480424 $
  Author:
    Remy Maucherat, Doug Sale, Jeff Dever, Ortwin Glueck, Mike Bowler, Oleg Kalnichevski

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `FORM_URL_ENCODED_CONTENT_TYPE` The Content-Type for www-form-urlencoded.

    - ### Fields inherited from class org.apache.commons.httpclient.methods.EntityEnclosingMethod

      `CONTENT_LENGTH_AUTO, CONTENT_LENGTH_CHUNKED`

    - ### Fields inherited from class org.apache.commons.httpclient.HttpMethodBase

      `effectiveVersion, statusLine`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PostMethod()` No-arg constructor.
    `PostMethod(java.lang.String uri)` Constructor specifying a URI.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addParameter(NameValuePair param)` Adds a new parameter to be used in the POST request body.
    `void` | `addParameter(java.lang.String paramName, java.lang.String paramValue)` Adds a new parameter to be used in the POST request body.
    `void` | `addParameters(NameValuePair[] parameters)` Adds an array of parameters to be used in the POST request body.
    `protected void` | `clearRequestBody()` Clears request body.
    `protected RequestEntity` | `generateRequestEntity()` Generates a request entity from the post parameters, if present.
    `java.lang.String` | `getName()` Returns `"POST"`.
    `NameValuePair` | `getParameter(java.lang.String paramName)` Gets the parameter of the specified name.
    `NameValuePair[]` | `getParameters()` Gets the parameters currently added to the PostMethod.
    `protected boolean` | `hasRequestContent()` Returns `true` if there is a request body to be sent.
    `boolean` | `removeParameter(java.lang.String paramName)` Removes all parameters with the given paramName.
    `boolean` | `removeParameter(java.lang.String paramName, java.lang.String paramValue)` Removes all parameter with the given paramName and paramValue.
    `void` | `setParameter(java.lang.String parameterName, java.lang.String parameterValue)` Sets the value of parameter with parameterName to parameterValue.
    `void` | `setRequestBody(NameValuePair[] parametersBody)` Sets an array of parameters to be used in the POST request body

    - ### Methods inherited from class org.apache.commons.httpclient.methods.EntityEnclosingMethod

      `addContentLengthRequestHeader, addRequestHeaders, generateRequestBody, getFollowRedirects, getRequestCharSet, getRequestContentLength, getRequestEntity, recycle, setContentChunked, setFollowRedirects, setRequestBody, setRequestBody, setRequestContentLength, setRequestContentLength, setRequestEntity, writeRequestBody`

    - ### Methods inherited from class org.apache.commons.httpclient.methods.ExpectContinueMethod

      `getUseExpectHeader, setUseExpectHeader`

    - ### Methods inherited from class org.apache.commons.httpclient.HttpMethodBase

      `abort, addCookieRequestHeader, addHostRequestHeader, addProxyConnectionHeader, addRequestHeader, addRequestHeader, addResponseFooter, addUserAgentRequestHeader, checkNotUsed, checkUsed, execute, generateRequestLine, getAuthenticationRealm, getContentCharSet, getDoAuthentication, getEffectiveVersion, getHostAuthState, getHostConfiguration, getMethodRetryHandler, getParams, getPath, getProxyAuthenticationRealm, getProxyAuthState, getQueryString, getRecoverableExceptionCount, getRequestHeader, getRequestHeaderGroup, getRequestHeaders, getRequestHeaders, getResponseBody, getResponseBody, getResponseBodyAsStream, getResponseBodyAsString, getResponseBodyAsString, getResponseCharSet, getResponseContentLength, getResponseFooter, getResponseFooters, getResponseHeader, getResponseHeaderGroup, getResponseHeaders, getResponseHeaders, getResponseStream, getResponseTrailerHeaderGroup, getStatusCode, getStatusLine, getStatusText, getURI, hasBeenUsed, isAborted, isConnectionCloseForced, isHttp11, isRequestSent, isStrictMode, processCookieHeaders, processResponseBody, processResponseHeaders, processStatusLine, readResponse, readResponseBody, readResponseHeaders, readStatusLine, releaseConnection, removeRequestHeader, removeRequestHeader, responseBodyConsumed, setConnectionCloseForced, setDoAuthentication, setHostConfiguration, setHttp11, setMethodRetryHandler, setParams, setPath, setQueryString, setQueryString, setRequestHeader, setRequestHeader, setResponseStream, setStrictMode, setURI, shouldCloseConnection, validate, writeRequest, writeRequestHeaders, writeRequestLine`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### FORM_URL_ENCODED_CONTENT_TYPE

          public static final java.lang.String FORM_URL_ENCODED_CONTENT_TYPE

      The Content-Type for www-form-urlencoded.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PostMethod

          public PostMethod()

      No-arg constructor.
      Since:
        1.0

    - #### PostMethod

          public PostMethod(java.lang.String uri)

      Constructor specifying a URI.
      Parameters:
        `uri` - either an absolute or relative URI
      Since:
        1.0

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Returns `"POST"`.
      Specified by:
        `getName` in interface `HttpMethod`
      Specified by:
        `getName` in class `HttpMethodBase`
      Returns:
        `"POST"`
      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

      Overrides:
        `hasRequestContent` in class `EntityEnclosingMethod`
      Returns:
        boolean
      Since:
        2.0beta1

    - #### clearRequestBody

          protected void clearRequestBody()

      Clears request body.

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

      Overrides:
        `clearRequestBody` in class `EntityEnclosingMethod`
      Since:
        2.0beta1

    - #### generateRequestEntity

          protected RequestEntity generateRequestEntity()

      Generates a request entity from the post parameters, if present. Calls `EntityEnclosingMethod.generateRequestBody()` if parameters have not been set.
      Overrides:
        `generateRequestEntity` in class `EntityEnclosingMethod`
      Since:
        3.0

    - #### setParameter

          public void setParameter(java.lang.String parameterName,
                          java.lang.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

    - #### getParameter

          public NameValuePair getParameter(java.lang.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

    - #### addParameter

          public void addParameter(java.lang.String paramName,
                          java.lang.String paramValue)
                            throws java.lang.IllegalArgumentException

      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:
        `java.lang.IllegalArgumentException` - if either argument is null
      Since:
        1.0

    - #### addParameter

          public void addParameter(NameValuePair param)
                            throws java.lang.IllegalArgumentException

      Adds a new parameter to be used in the POST request body.
      Parameters:
        `param` - The parameter to add.
      Throws:
        `java.lang.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

    - #### removeParameter

          public boolean removeParameter(java.lang.String paramName)
                                  throws java.lang.IllegalArgumentException

      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:
        `java.lang.IllegalArgumentException` - When the parameter name passed is null
      Since:
        2.0

    - #### removeParameter

          public boolean removeParameter(java.lang.String paramName,
                                java.lang.String paramValue)
                                  throws java.lang.IllegalArgumentException

      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:
        `java.lang.IllegalArgumentException` - when param name or value are null
      Since:
        2.0

    - #### setRequestBody

          public void setRequestBody(NameValuePair[] parametersBody)
                              throws java.lang.IllegalArgumentException

      Sets an array of parameters to be used in the POST request body
      Parameters:
        `parametersBody` - The array of parameters to add.
      Throws:
        `java.lang.IllegalArgumentException` - when param parameters are null
      Since:
        2.0beta1

Copyright (c) 1999-2005 - Apache Software Foundation