public class HttpPostRequestDecoder extends Object implements InterfaceHttpPostRequestDecoder
Modifier and Type | Class and Description |
---|---|
static class |
HttpPostRequestDecoder.EndOfDataDecoderException
Exception when the body is fully decoded, even if there is still data
|
static class |
HttpPostRequestDecoder.ErrorDataDecoderException
Exception when an error occurs while decoding
|
static class |
HttpPostRequestDecoder.IncompatibleDataDecoderException
Deprecated.
|
protected static class |
HttpPostRequestDecoder.MultiPartStatus
states follow
NOTSTARTED PREAMBLE (
(HEADERDELIMITER DISPOSITION (FIELD | FILEUPLOAD))*
(HEADERDELIMITER DISPOSITION MIXEDPREAMBLE
(MIXEDDELIMITER MIXEDDISPOSITION MIXEDFILEUPLOAD)+
MIXEDCLOSEDELIMITER)*
CLOSEDELIMITER)+ EPILOGUE
First status is: NOSTARTED
Content-type: multipart/form-data, boundary=AaB03x => PREAMBLE in Header
--AaB03x => HEADERDELIMITER
content-disposition: form-data; name="field1" => DISPOSITION
Joe Blow => FIELD
--AaB03x => HEADERDELIMITER
content-disposition: form-data; name="pics" => DISPOSITION
Content-type: multipart/mixed, boundary=BbC04y
--BbC04y => MIXEDDELIMITER
Content-disposition: attachment; filename="file1.txt" => MIXEDDISPOSITION
Content-Type: text/plain
... contents of file1.txt ... => MIXEDFILEUPLOAD
--BbC04y => MIXEDDELIMITER
Content-disposition: file; filename="file2.gif" => MIXEDDISPOSITION
Content-type: image/gif
Content-Transfer-Encoding: binary
...contents of file2.gif... => MIXEDFILEUPLOAD
--BbC04y-- => MIXEDCLOSEDELIMITER
--AaB03x-- => CLOSEDELIMITER
Once CLOSEDELIMITER is found, last status is EPILOGUE
|
static class |
HttpPostRequestDecoder.NotEnoughDataDecoderException
Exception when try reading data from request in chunked format, and not enough
data are available (need more chunks)
|
Constructor and Description |
---|
HttpPostRequestDecoder(HttpDataFactory factory,
HttpRequest request) |
HttpPostRequestDecoder(HttpDataFactory factory,
HttpRequest request,
Charset charset) |
HttpPostRequestDecoder(HttpRequest request) |
Modifier and Type | Method and Description |
---|---|
void |
cleanFiles()
Clean all HttpDatas (on Disk) for the current request.
|
InterfaceHttpData |
getBodyHttpData(String name)
This method returns the first InterfaceHttpData with the given name from body.
|
List<InterfaceHttpData> |
getBodyHttpDatas()
This method returns a List of all HttpDatas from body.
|
List<InterfaceHttpData> |
getBodyHttpDatas(String name)
This method returns a List of all HttpDatas with the given name from body.
|
protected static String |
getMultipartDataBoundary(String contentType)
Check from the request ContentType if this request is a Multipart request.
|
boolean |
hasNext()
True if at current status, there is an available decoded InterfaceHttpData from the Body.
|
boolean |
isMultipart()
True if this request is a Multipart request
|
static boolean |
isMultipart(HttpRequest request)
Check if the given request is a multipart request
|
InterfaceHttpData |
next()
Returns the next available InterfaceHttpData or null if, at the time it is called, there is no more
available InterfaceHttpData.
|
void |
offer(HttpChunk chunk)
Initialized the internals from a new chunk
|
void |
removeHttpDataFromClean(InterfaceHttpData data)
Remove the given FileUpload from the list of FileUploads to clean
|
public HttpPostRequestDecoder(HttpRequest request) throws HttpPostRequestDecoder.ErrorDataDecoderException, HttpPostRequestDecoder.IncompatibleDataDecoderException
request
- the request to decodeNullPointerException
- for requestHttpPostRequestDecoder.IncompatibleDataDecoderException
- if the request has no body to decodeHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other errorspublic HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request) throws HttpPostRequestDecoder.ErrorDataDecoderException, HttpPostRequestDecoder.IncompatibleDataDecoderException
factory
- the factory used to create InterfaceHttpDatarequest
- the request to decodeNullPointerException
- for request or factoryHttpPostRequestDecoder.IncompatibleDataDecoderException
- if the request has no body to decodeHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other errorspublic HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request, Charset charset) throws HttpPostRequestDecoder.ErrorDataDecoderException, HttpPostRequestDecoder.IncompatibleDataDecoderException
factory
- the factory used to create InterfaceHttpDatarequest
- the request to decodecharset
- the charset to use as defaultNullPointerException
- for request or charset or factoryHttpPostRequestDecoder.IncompatibleDataDecoderException
- if the request has no body to decodeHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other errorspublic static boolean isMultipart(HttpRequest request) throws HttpPostRequestDecoder.ErrorDataDecoderException
HttpPostRequestDecoder.ErrorDataDecoderException
protected static String getMultipartDataBoundary(String contentType) throws HttpPostRequestDecoder.ErrorDataDecoderException
HttpPostRequestDecoder.ErrorDataDecoderException
public boolean isMultipart()
isMultipart
in interface InterfaceHttpPostRequestDecoder
public List<InterfaceHttpData> getBodyHttpDatas() throws HttpPostRequestDecoder.NotEnoughDataDecoderException
getBodyHttpDatas
in interface InterfaceHttpPostRequestDecoder
HttpPostRequestDecoder.NotEnoughDataDecoderException
- Need more chunkspublic List<InterfaceHttpData> getBodyHttpDatas(String name) throws HttpPostRequestDecoder.NotEnoughDataDecoderException
getBodyHttpDatas
in interface InterfaceHttpPostRequestDecoder
HttpPostRequestDecoder.NotEnoughDataDecoderException
- need more chunkspublic InterfaceHttpData getBodyHttpData(String name) throws HttpPostRequestDecoder.NotEnoughDataDecoderException
getBodyHttpData
in interface InterfaceHttpPostRequestDecoder
HttpPostRequestDecoder.NotEnoughDataDecoderException
- need more chunkspublic void offer(HttpChunk chunk) throws HttpPostRequestDecoder.ErrorDataDecoderException
offer
in interface InterfaceHttpPostRequestDecoder
chunk
- the new received chunkHttpPostRequestDecoder.ErrorDataDecoderException
- if there is a problem with the charset decoding or
other errorspublic boolean hasNext() throws HttpPostRequestDecoder.EndOfDataDecoderException
hasNext
in interface InterfaceHttpPostRequestDecoder
HttpPostRequestDecoder.EndOfDataDecoderException
- No more data will be availablepublic InterfaceHttpData next() throws HttpPostRequestDecoder.EndOfDataDecoderException
next
in interface InterfaceHttpPostRequestDecoder
HttpPostRequestDecoder.EndOfDataDecoderException
- No more data will be availablepublic void cleanFiles()
cleanFiles
in interface InterfaceHttpPostRequestDecoder
public void removeHttpDataFromClean(InterfaceHttpData data)
removeHttpDataFromClean
in interface InterfaceHttpPostRequestDecoder
Copyright © 2008-2014 The Netty Project. All Rights Reserved.