Class HttpPostRequestEncoder
- java.lang.Object
-
- org.jboss.netty.handler.codec.http.multipart.HttpPostRequestEncoder
-
- All Implemented Interfaces:
ChunkedInput
public class HttpPostRequestEncoder extends Object implements ChunkedInput
This encoder will help to encode Request for a FORM as POST.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
HttpPostRequestEncoder.EncoderMode
Different modes to use to encode form data.static class
HttpPostRequestEncoder.ErrorDataEncoderException
Exception when an error occurs while encoding
-
Constructor Summary
Constructors Constructor Description HttpPostRequestEncoder(HttpRequest request, boolean multipart)
HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart)
HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, Charset charset)
HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, Charset charset, HttpPostRequestEncoder.EncoderMode encoderMode)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBodyAttribute(String name, String value)
Add a simple attribute in the body as Name=Valuevoid
addBodyFileUpload(String name, File file, String contentType, boolean isText)
Add a file as a FileUploadvoid
addBodyFileUploads(String name, File[] file, String[] contentType, boolean[] isText)
Add a series of Files associated with one File parametervoid
addBodyHttpData(InterfaceHttpData data)
Add the InterfaceHttpData to the Body listvoid
cleanFiles()
Clean all HttpDatas (on Disk) for the current request.void
close()
Releases the resources associated with the stream.HttpRequest
finalizeRequest()
Finalize the request by preparing the Header in the request and returns the request ready to be sent.
Once finalized, no data must be added.
If the request does not need chunk (isChunked() == false), this request is the only object to send to the remote server.List<InterfaceHttpData>
getBodyListAttributes()
This method returns a List of all InterfaceHttpData from body part.boolean
hasNextChunk()
Returnstrue
if and only if there is any data left in the stream.boolean
isChunked()
boolean
isEndOfInput()
Returntrue
if and only if there is no data left in the stream and the stream has reached at its end.boolean
isMultipart()
True if this request is a Multipart requestHttpChunk
nextChunk()
Returns the next available HttpChunk.void
setBodyHttpDatas(List<InterfaceHttpData> datas)
Set the Body HttpDatas list
-
-
-
Constructor Detail
-
HttpPostRequestEncoder
public HttpPostRequestEncoder(HttpRequest request, boolean multipart) throws HttpPostRequestEncoder.ErrorDataEncoderException
- Parameters:
request
- the request to encodemultipart
- True if the FORM is a ENCTYPE="multipart/form-data"- Throws:
NullPointerException
- for requestHttpPostRequestEncoder.ErrorDataEncoderException
- if the request is not a POST
-
HttpPostRequestEncoder
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart) throws HttpPostRequestEncoder.ErrorDataEncoderException
- Parameters:
factory
- the factory used to create InterfaceHttpDatarequest
- the request to encodemultipart
- True if the FORM is a ENCTYPE="multipart/form-data"- Throws:
NullPointerException
- for request and factoryHttpPostRequestEncoder.ErrorDataEncoderException
- if the request is not a POST
-
HttpPostRequestEncoder
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, Charset charset) throws HttpPostRequestEncoder.ErrorDataEncoderException
- Parameters:
factory
- the factory used to create InterfaceHttpDatarequest
- the request to encodemultipart
- True if the FORM is a ENCTYPE="multipart/form-data"charset
- the charset to use as default- Throws:
NullPointerException
- for request or charset or factoryHttpPostRequestEncoder.ErrorDataEncoderException
- if the request is not a POST
-
HttpPostRequestEncoder
public HttpPostRequestEncoder(HttpDataFactory factory, HttpRequest request, boolean multipart, Charset charset, HttpPostRequestEncoder.EncoderMode encoderMode) throws HttpPostRequestEncoder.ErrorDataEncoderException
- Parameters:
factory
- the factory used to create InterfaceHttpDatarequest
- the request to encodemultipart
- True if the FORM is a ENCTYPE="multipart/form-data"charset
- the charset to use as default + @param encoderMode the mode for the encoder to use. SeeHttpPostRequestEncoder.EncoderMode
for the details.- Throws:
NullPointerException
- for request or charset or factoryHttpPostRequestEncoder.ErrorDataEncoderException
- if the request is not a POST
-
-
Method Detail
-
cleanFiles
public void cleanFiles()
Clean all HttpDatas (on Disk) for the current request.
-
isMultipart
public boolean isMultipart()
True if this request is a Multipart request- Returns:
- True if this request is a Multipart request
-
getBodyListAttributes
public List<InterfaceHttpData> getBodyListAttributes()
This method returns a List of all InterfaceHttpData from body part.- Returns:
- the list of InterfaceHttpData from Body part
-
setBodyHttpDatas
public void setBodyHttpDatas(List<InterfaceHttpData> datas) throws HttpPostRequestEncoder.ErrorDataEncoderException
Set the Body HttpDatas list- Throws:
NullPointerException
- for datasHttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
addBodyAttribute
public void addBodyAttribute(String name, String value) throws HttpPostRequestEncoder.ErrorDataEncoderException
Add a simple attribute in the body as Name=Value- Parameters:
name
- name of the parametervalue
- the value of the parameter- Throws:
NullPointerException
- for nameHttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
addBodyFileUpload
public void addBodyFileUpload(String name, File file, String contentType, boolean isText) throws HttpPostRequestEncoder.ErrorDataEncoderException
Add a file as a FileUpload- Parameters:
name
- the name of the parameterfile
- the file to be uploaded (if not Multipart mode, only the filename will be included)contentType
- the associated contentType for the FileisText
- True if this file should be transmitted in Text format (else binary)- Throws:
NullPointerException
- for name and fileHttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
addBodyFileUploads
public void addBodyFileUploads(String name, File[] file, String[] contentType, boolean[] isText) throws HttpPostRequestEncoder.ErrorDataEncoderException
Add a series of Files associated with one File parameter- Parameters:
name
- the name of the parameterfile
- the array of filescontentType
- the array of content Types associated with each fileisText
- the array of isText attribute (False meaning binary mode) for each file- Throws:
NullPointerException
- also throws if array have different sizesHttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
addBodyHttpData
public void addBodyHttpData(InterfaceHttpData data) throws HttpPostRequestEncoder.ErrorDataEncoderException
Add the InterfaceHttpData to the Body list- Throws:
NullPointerException
- for dataHttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
finalizeRequest
public HttpRequest finalizeRequest() throws HttpPostRequestEncoder.ErrorDataEncoderException
Finalize the request by preparing the Header in the request and returns the request ready to be sent.
Once finalized, no data must be added.
If the request does not need chunk (isChunked() == false), this request is the only object to send to the remote server.- Returns:
- the request object (chunked or not according to size of body)
- Throws:
HttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error or if the finalize were already done
-
isChunked
public boolean isChunked()
- Returns:
- True if the request is by Chunk
-
close
public void close() throws Exception
Description copied from interface:ChunkedInput
Releases the resources associated with the stream.- Specified by:
close
in interfaceChunkedInput
- Throws:
Exception
-
nextChunk
public HttpChunk nextChunk() throws HttpPostRequestEncoder.ErrorDataEncoderException
Returns the next available HttpChunk. The caller is responsible to test if this chunk is the last one (isLast()), in order to stop calling this method.- Specified by:
nextChunk
in interfaceChunkedInput
- Returns:
- the next available HttpChunk
- Throws:
HttpPostRequestEncoder.ErrorDataEncoderException
- if the encoding is in error
-
isEndOfInput
public boolean isEndOfInput() throws Exception
Description copied from interface:ChunkedInput
Returntrue
if and only if there is no data left in the stream and the stream has reached at its end.- Specified by:
isEndOfInput
in interfaceChunkedInput
- Throws:
Exception
-
hasNextChunk
public boolean hasNextChunk() throws Exception
Description copied from interface:ChunkedInput
Returnstrue
if and only if there is any data left in the stream. Please note thatfalse
does not necessarily mean that the stream has reached at its end. In a slow stream, the next chunk might be unavailable just momentarily.- Specified by:
hasNextChunk
in interfaceChunkedInput
- Throws:
Exception
-
-