Interface InterfaceHttpPostRequestDecoder
- All Known Implementing Classes:
HttpPostMultipartRequestDecoder
,HttpPostRequestDecoder
,HttpPostStandardRequestDecoder
public interface InterfaceHttpPostRequestDecoder
This decoder will decode Body and can handle POST BODY.
You MUST call
destroy()
after completion to release all resources.-
Method Summary
Modifier and TypeMethodDescriptionvoid
Clean all HttpDatas (on Disk) for the current request.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 theInterfaceHttpPostRequestDecoder
and release all it resources.getBodyHttpData
(String name) This getMethod returns the first InterfaceHttpData with the given name from body.
If chunked, all chunks must have been offered using offer() getMethod.This getMethod returns a List of all HttpDatas from body.
If chunked, all chunks must have been offered using offer() getMethod.getBodyHttpDatas
(String name) This getMethod returns a List of all HttpDatas with the given name from body.
If chunked, all chunks must have been offered using offer() getMethod.int
Return the threshold in bytes after which read data in the buffer should be discarded.boolean
hasNext()
True if at current getStatus, there is an available decoded InterfaceHttpData from the Body.boolean
True if this request is a Multipart requestnext()
Returns the next available InterfaceHttpData or null if, at the time it is called, there is no more available InterfaceHttpData.offer
(HttpContent content) Initialized the internals from a new chunkvoid
Remove the given FileUpload from the list of FileUploads to cleanvoid
setDiscardThreshold
(int discardThreshold) Set the amount of bytes after which read bytes in the buffer should be discarded.
-
Method Details
-
isMultipart
boolean isMultipart()True if this request is a Multipart request- Returns:
- True if this request is a Multipart request
-
setDiscardThreshold
void setDiscardThreshold(int discardThreshold) Set the amount of bytes after which read bytes in the buffer should be discarded. Setting this lower gives lower memory usage but with the overhead of more memory copies. Use0
to disable it. -
getDiscardThreshold
int getDiscardThreshold()Return the threshold in bytes after which read data in the buffer should be discarded. -
getBodyHttpDatas
List<InterfaceHttpData> getBodyHttpDatas()This getMethod returns a List of all HttpDatas from body.
If chunked, all chunks must have been offered using offer() getMethod. If not, NotEnoughDataDecoderException will be raised.- Returns:
- the list of HttpDatas from Body part for POST getMethod
- Throws:
HttpPostRequestDecoder.NotEnoughDataDecoderException
- Need more chunks
-
getBodyHttpDatas
This getMethod returns a List of all HttpDatas with the given name from body.
If chunked, all chunks must have been offered using offer() getMethod. If not, NotEnoughDataDecoderException will be raised.- Returns:
- All Body HttpDatas with the given name (ignore case)
- Throws:
HttpPostRequestDecoder.NotEnoughDataDecoderException
- need more chunks
-
getBodyHttpData
This getMethod returns the first InterfaceHttpData with the given name from body.
If chunked, all chunks must have been offered using offer() getMethod. If not, NotEnoughDataDecoderException will be raised.- Returns:
- The first Body InterfaceHttpData with the given name (ignore case)
- Throws:
HttpPostRequestDecoder.NotEnoughDataDecoderException
- need more chunks
-
offer
Initialized the internals from a new chunk- Parameters:
content
- the new received chunk- Throws:
HttpPostRequestDecoder.ErrorDataDecoderException
- if there is a problem with the charset decoding or other errors
-
hasNext
boolean hasNext()True if at current getStatus, there is an available decoded InterfaceHttpData from the Body. This getMethod works for chunked and not chunked request.- Returns:
- True if at current getStatus, there is a decoded InterfaceHttpData
- Throws:
HttpPostRequestDecoder.EndOfDataDecoderException
- No more data will be available
-
next
InterfaceHttpData next()Returns the next available InterfaceHttpData or null if, at the time it is called, there is no more available InterfaceHttpData. A subsequent call to offer(httpChunk) could enable more data. Be sure to callReferenceCounted.release()
after you are done with processing to make sure to not leak any resources- Returns:
- the next available InterfaceHttpData or null if none
- Throws:
HttpPostRequestDecoder.EndOfDataDecoderException
- No more data will be available
-
currentPartialHttpData
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). Full decoded ones are accessible through hasNext() and next() methods.- Returns:
- the current InterfaceHttpData if currently in decoding status or null if none.
-
destroy
void destroy()Destroy theInterfaceHttpPostRequestDecoder
and release all it resources. After this method was called it is not possible to operate on it anymore. -
cleanFiles
void cleanFiles()Clean all HttpDatas (on Disk) for the current request. -
removeHttpDataFromClean
Remove the given FileUpload from the list of FileUploads to clean
-