public class HttpPostRequestDecoder extends java.lang.Object implements InterfaceHttpPostRequestDecoder
destroy()
after completion to release all resources.限定符和类型 | 类和说明 |
---|---|
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
|
protected static class |
HttpPostRequestDecoder.MultiPartStatus
states follow NOTSTARTED PREAMBLE ( (HEADERDELIMITER DISPOSITION (FIELD |
FILEUPLOAD))* (HEADERDELIMITER DISPOSITION MIXEDPREAMBLE (MIXEDDELIMITER
MIXEDDISPOSITION MIXEDFILEUPLOAD)+ MIXEDCLOSEDELIMITER)* CLOSEDELIMITER)+
EPILOGUE
First getStatus 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 getStatus 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)
|
static class |
HttpPostRequestDecoder.TooLongFormFieldException
Exception when a field content is too long
|
static class |
HttpPostRequestDecoder.TooManyFormFieldsException
Exception when the maximum number of fields for a given form is reached
|
构造器和说明 |
---|
HttpPostRequestDecoder(HttpDataFactory factory,
HttpRequest request) |
HttpPostRequestDecoder(HttpDataFactory factory,
HttpRequest request,
java.nio.charset.Charset charset) |
HttpPostRequestDecoder(HttpDataFactory factory,
HttpRequest request,
java.nio.charset.Charset charset,
int maxFields,
int maxBufferedBytes) |
HttpPostRequestDecoder(HttpRequest request) |
HttpPostRequestDecoder(HttpRequest request,
int maxFields,
int maxBufferedBytes) |
限定符和类型 | 方法和说明 |
---|---|
void |
cleanFiles()
Clean all HttpDatas (on Disk) for the current request.
|
InterfaceHttpData |
currentPartialHttpData()
Returns the current InterfaceHttpData if currently in decoding status,
meaning all data are not yet within, or null if there is no InterfaceHttpData
currently in decoding status (either because none yet decoded or none currently partially
decoded).
|
void |
destroy()
Destroy the
InterfaceHttpPostRequestDecoder and release all it resources. |
InterfaceHttpData |
getBodyHttpData(java.lang.String name)
This getMethod returns the first InterfaceHttpData with the given name from
body.
|
java.util.List<InterfaceHttpData> |
getBodyHttpDatas()
This getMethod returns a List of all HttpDatas from body.
|
java.util.List<InterfaceHttpData> |
getBodyHttpDatas(java.lang.String name)
This getMethod returns a List of all HttpDatas with the given name from
body.
|
int |
getDiscardThreshold()
Return the threshold in bytes after which read data in the buffer should be discarded.
|
protected static java.lang.String[] |
getMultipartDataBoundary(java.lang.String contentType)
Check from the request ContentType if this request is a Multipart request.
|
boolean |
hasNext()
True if at current getStatus, 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.
|
InterfaceHttpPostRequestDecoder |
offer(HttpContent content)
Initialized the internals from a new chunk
|
void |
removeHttpDataFromClean(InterfaceHttpData data)
Remove the given FileUpload from the list of FileUploads to clean
|
void |
setDiscardThreshold(int discardThreshold)
Set the amount of bytes after which read bytes in the buffer should be discarded.
|
public HttpPostRequestDecoder(HttpRequest request)
request
- the request to decodejava.lang.NullPointerException
- for requestHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other
errorspublic HttpPostRequestDecoder(HttpRequest request, int maxFields, int maxBufferedBytes)
request
- the request to decodemaxFields
- the maximum number of fields the form can have, -1
to disablemaxBufferedBytes
- the maximum number of bytes the decoder can buffer when decoding a field, -1
to disablejava.lang.NullPointerException
- for requestHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other
errorspublic HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request)
factory
- the factory used to create InterfaceHttpDatarequest
- the request to decodejava.lang.NullPointerException
- for request or factoryHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other
errorspublic HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request, java.nio.charset.Charset charset)
factory
- the factory used to create InterfaceHttpDatarequest
- the request to decodecharset
- the charset to use as defaultjava.lang.NullPointerException
- for request or charset or factoryHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other
errorspublic HttpPostRequestDecoder(HttpDataFactory factory, HttpRequest request, java.nio.charset.Charset charset, int maxFields, int maxBufferedBytes)
factory
- the factory used to create InterfaceHttpDatarequest
- the request to decodecharset
- the charset to use as defaultmaxFields
- the maximum number of fields the form can have, -1
to disablemaxBufferedBytes
- the maximum number of bytes the decoder can buffer when decoding a field, -1
to disablejava.lang.NullPointerException
- for request or charset or factoryHttpPostRequestDecoder.ErrorDataDecoderException
- if the default charset was wrong when decoding or other
errorspublic static boolean isMultipart(HttpRequest request)
protected static java.lang.String[] getMultipartDataBoundary(java.lang.String contentType)
public boolean isMultipart()
InterfaceHttpPostRequestDecoder
isMultipart
在接口中 InterfaceHttpPostRequestDecoder
public void setDiscardThreshold(int discardThreshold)
InterfaceHttpPostRequestDecoder
0
to disable it.public int getDiscardThreshold()
InterfaceHttpPostRequestDecoder
public java.util.List<InterfaceHttpData> getBodyHttpDatas()
InterfaceHttpPostRequestDecoder
getBodyHttpDatas
在接口中 InterfaceHttpPostRequestDecoder
public java.util.List<InterfaceHttpData> getBodyHttpDatas(java.lang.String name)
InterfaceHttpPostRequestDecoder
getBodyHttpDatas
在接口中 InterfaceHttpPostRequestDecoder
public InterfaceHttpData getBodyHttpData(java.lang.String name)
InterfaceHttpPostRequestDecoder
getBodyHttpData
在接口中 InterfaceHttpPostRequestDecoder
public InterfaceHttpPostRequestDecoder offer(HttpContent content)
InterfaceHttpPostRequestDecoder
offer
在接口中 InterfaceHttpPostRequestDecoder
content
- the new received chunkpublic boolean hasNext()
InterfaceHttpPostRequestDecoder
hasNext
在接口中 InterfaceHttpPostRequestDecoder
public InterfaceHttpData next()
InterfaceHttpPostRequestDecoder
ReferenceCounted.release()
after you are done
with processing to make sure to not leak any resourcesnext
在接口中 InterfaceHttpPostRequestDecoder
public InterfaceHttpData currentPartialHttpData()
InterfaceHttpPostRequestDecoder
currentPartialHttpData
在接口中 InterfaceHttpPostRequestDecoder
public void destroy()
InterfaceHttpPostRequestDecoder
InterfaceHttpPostRequestDecoder
and release all it resources. After this method
was called it is not possible to operate on it anymore.destroy
在接口中 InterfaceHttpPostRequestDecoder
public void cleanFiles()
InterfaceHttpPostRequestDecoder
cleanFiles
在接口中 InterfaceHttpPostRequestDecoder
public void removeHttpDataFromClean(InterfaceHttpData data)
InterfaceHttpPostRequestDecoder