Class EntityEnclosingMethod
- java.lang.Object
-
- org.apache.commons.httpclient.HttpMethodBase
-
- org.apache.commons.httpclient.methods.ExpectContinueMethod
-
- org.apache.commons.httpclient.methods.EntityEnclosingMethod
-
- All Implemented Interfaces:
HttpMethod
- Direct Known Subclasses:
PostMethod,PutMethod
public abstract class EntityEnclosingMethod extends ExpectContinueMethod
This abstract class serves as a foundation for all HTTP methods that can enclose an entity within requests- Since:
- 2.0beta1
- Version:
- $Revision: 480424 $
- Author:
- Oleg Kalnichevski, Jeff Dever
-
-
Field Summary
Fields Modifier and Type Field Description static longCONTENT_LENGTH_AUTODeprecated.static longCONTENT_LENGTH_CHUNKEDDeprecated.-
Fields inherited from class org.apache.commons.httpclient.HttpMethodBase
effectiveVersion, statusLine
-
-
Constructor Summary
Constructors Constructor Description EntityEnclosingMethod()No-arg constructor.EntityEnclosingMethod(java.lang.String uri)Constructor specifying a URI.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected voidaddContentLengthRequestHeader(HttpState state, HttpConnection conn)Generates Content-Length or Transfer-Encoding: Chunked request header, as long as no Content-Length request header already exists.protected voidaddRequestHeaders(HttpState state, HttpConnection conn)Populates the request headers map to with additionalheadersto be submitted to the givenHttpConnection.protected voidclearRequestBody()Clears the request body.protected byte[]generateRequestBody()Generates the request body.protected RequestEntitygenerateRequestEntity()booleangetFollowRedirects()Entity enclosing requests cannot be redirected without user intervention according to RFC 2616.java.lang.StringgetRequestCharSet()Returns the request's charset.protected longgetRequestContentLength()Returns the length of the request body.RequestEntitygetRequestEntity()protected booleanhasRequestContent()Returns true if there is a request body to be sent.voidrecycle()Deprecated.no longer supported and will be removed in the future version of HttpClientvoidsetContentChunked(boolean chunked)Sets whether or not the content should be chunked.voidsetFollowRedirects(boolean followRedirects)Entity enclosing requests cannot be redirected without user intervention according to RFC 2616.voidsetRequestBody(java.io.InputStream body)Deprecated.voidsetRequestBody(java.lang.String body)Deprecated.voidsetRequestContentLength(int length)Deprecated.voidsetRequestContentLength(long length)Deprecated.voidsetRequestEntity(RequestEntity requestEntity)protected booleanwriteRequestBody(HttpState state, HttpConnection conn)Writes the request body to the givenconnection.-
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, getName, 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
-
-
-
-
Field Detail
-
CONTENT_LENGTH_AUTO
public static final long CONTENT_LENGTH_AUTO
Deprecated.The content length will be calculated automatically. This implies buffering of the content.- See Also:
- Constant Field Values
-
CONTENT_LENGTH_CHUNKED
public static final long CONTENT_LENGTH_CHUNKED
Deprecated.The request will use chunked transfer encoding. Content length is not calculated and the content is not buffered.- See Also:
- Constant Field Values
-
-
Method Detail
-
hasRequestContent
protected boolean hasRequestContent()
Returns true if there is a request body to be sent.This method must be overridden by sub-classes that implement alternative request content input methods
- Specified by:
hasRequestContentin classExpectContinueMethod- Returns:
- boolean
- Since:
- 2.0beta1
-
clearRequestBody
protected void clearRequestBody()
Clears the request body.This method must be overridden by sub-classes that implement alternative request content input methods.
- Since:
- 2.0beta1
-
generateRequestBody
protected byte[] generateRequestBody()
Generates the request body.This method must be overridden by sub-classes that implement alternative request content input methods.
- Returns:
- request body as an array of bytes. If the request content has not been set, returns null.
- Since:
- 2.0beta1
-
generateRequestEntity
protected RequestEntity generateRequestEntity()
-
getFollowRedirects
public boolean getFollowRedirects()
Entity enclosing requests cannot be redirected without user intervention according to RFC 2616.- Specified by:
getFollowRedirectsin interfaceHttpMethod- Overrides:
getFollowRedirectsin classHttpMethodBase- Returns:
false.- Since:
- 2.0
-
setFollowRedirects
public void setFollowRedirects(boolean followRedirects)
Entity enclosing requests cannot be redirected without user intervention according to RFC 2616.- Specified by:
setFollowRedirectsin interfaceHttpMethod- Overrides:
setFollowRedirectsin classHttpMethodBase- Parameters:
followRedirects- must always befalse
-
setRequestContentLength
public void setRequestContentLength(int length)
Deprecated.Sets length information about the request body.Note: If you specify a content length the request is unbuffered. This prevents redirection and automatic retry if a request fails the first time. This means that the HttpClient can not perform authorization automatically but will throw an Exception. You will have to set the necessary 'Authorization' or 'Proxy-Authorization' headers manually.
- Parameters:
length- size in bytes or any of CONTENT_LENGTH_AUTO, CONTENT_LENGTH_CHUNKED. If number of bytes or CONTENT_LENGTH_CHUNKED is specified the content will not be buffered internally and the Content-Length header of the request will be used. In this case the user is responsible to supply the correct content length. If CONTENT_LENGTH_AUTO is specified the request will be buffered before it is sent over the network.
-
getRequestCharSet
public java.lang.String getRequestCharSet()
Returns the request's charset. The charset is parsed from the request entity's content type, unless the content type header has been set manually.- Overrides:
getRequestCharSetin classHttpMethodBase- Returns:
- String The character set.
- Since:
- 3.0
- See Also:
RequestEntity.getContentType()
-
setRequestContentLength
public void setRequestContentLength(long length)
Deprecated.Sets length information about the request body.Note: If you specify a content length the request is unbuffered. This prevents redirection and automatic retry if a request fails the first time. This means that the HttpClient can not perform authorization automatically but will throw an Exception. You will have to set the necessary 'Authorization' or 'Proxy-Authorization' headers manually.
- Parameters:
length- size in bytes or any of CONTENT_LENGTH_AUTO, CONTENT_LENGTH_CHUNKED. If number of bytes or CONTENT_LENGTH_CHUNKED is specified the content will not be buffered internally and the Content-Length header of the request will be used. In this case the user is responsible to supply the correct content length. If CONTENT_LENGTH_AUTO is specified the request will be buffered before it is sent over the network.
-
setContentChunked
public void setContentChunked(boolean chunked)
Sets whether or not the content should be chunked.- Parameters:
chunked-trueif the content should be chunked- Since:
- 3.0
-
getRequestContentLength
protected long getRequestContentLength()
Returns the length of the request body.- Returns:
- number of bytes in the request body
-
addRequestHeaders
protected void addRequestHeaders(HttpState state, HttpConnection conn) throws java.io.IOException, HttpException
Populates the request headers map to with additionalheadersto be submitted to the givenHttpConnection.This implementation adds tt>Content-Length or Transfer-Encoding headers.
Subclasses may want to override this method to to add additional headers, and may choose to invoke this implementation (via super) to add the "standard" headers.
- Overrides:
addRequestHeadersin classExpectContinueMethod- Parameters:
state- thestateinformation associated with this methodconn- theconnectionused to execute this HTTP method- Throws:
java.io.IOException- if an I/O (transport) error occurs. Some transport exceptions can be recovered from.HttpException- if a protocol exception occurs. Usually protocol exceptions cannot be recovered from.- Since:
- 3.0
- See Also:
HttpMethodBase.writeRequestHeaders(org.apache.commons.httpclient.HttpState, org.apache.commons.httpclient.HttpConnection)
-
addContentLengthRequestHeader
protected void addContentLengthRequestHeader(HttpState state, HttpConnection conn) throws java.io.IOException, HttpException
Generates Content-Length or Transfer-Encoding: Chunked request header, as long as no Content-Length request header already exists.- Parameters:
state- current state of http requestsconn- the connection to use for I/O- Throws:
java.io.IOException- when errors occur reading or writing to/from the connectionHttpException- when a recoverable error occurs
-
setRequestBody
public void setRequestBody(java.io.InputStream body)
Deprecated.Sets the request body to be the specified inputstream.- Parameters:
body- Request body content asInputStream
-
setRequestBody
public void setRequestBody(java.lang.String body)
Deprecated.Sets the request body to be the specified string. The string will be submitted, using the encoding specified in the Content-Type request header.
Example:setRequestHeader("Content-type", "text/xml; charset=UTF-8");
Would use the UTF-8 encoding. If no charset is specified, thedefaultcontent encoding is used (ISO-8859-1).- Parameters:
body- Request body content as a string
-
writeRequestBody
protected boolean writeRequestBody(HttpState state, HttpConnection conn) throws java.io.IOException, HttpException
Writes the request body to the givenconnection.- Overrides:
writeRequestBodyin classHttpMethodBase- Parameters:
state- thestateinformation associated with this methodconn- theconnectionused to execute this HTTP method- Returns:
- true
- Throws:
java.io.IOException- if an I/O (transport) error occurs. Some transport exceptions can be recovered from.HttpException- if a protocol exception occurs. Usually protocol exceptions cannot be recovered from.
-
recycle
public void recycle()
Deprecated.no longer supported and will be removed in the future version of HttpClientRecycles the HTTP method so that it can be used again. Note that all of the instance variables will be reset once this method has been called. This method will also release the connection being used by this HTTP method.- Specified by:
recyclein interfaceHttpMethod- Overrides:
recyclein classHttpMethodBase- See Also:
HttpMethodBase.releaseConnection()
-
getRequestEntity
public RequestEntity getRequestEntity()
- Returns:
- Returns the requestEntity.
- Since:
- 3.0
-
setRequestEntity
public void setRequestEntity(RequestEntity requestEntity)
- Parameters:
requestEntity- The requestEntity to set.- Since:
- 3.0
-
-