public interface RequestBodyListener
Callbacks for reading request body data asynchronously.
Example usage:
server = httpsServer()
.addHandler((request, response) -> {
AsyncHandle ctx = request.handleAsync();
ctx.setReadListener(new RequestBodyListener() {
public void onDataReceived(ByteBuffer bb, DoneCallback doneCallback) {
byte[] b = new byte[bb.remaining()];
bb.get(b);
try {
response.outputStream().write(b);
doneCallback.onComplete(null);
} catch (IOException e) {
doneCallback.onComplete(e);
}
}
public void onComplete() {
ctx.complete();
}
public void onError(Throwable t) {
errors.add(t);
}
});
return true;
})
.start();
Modifier and Type | Method and Description |
---|---|
void |
onComplete()
Called when the request body is fully received.
|
void |
onDataReceived(ByteBuffer buffer,
DoneCallback doneCallback)
Called when request data is received from the client.
|
void |
onError(Throwable t)
Called if there is an error reading the body.
|
void onDataReceived(ByteBuffer buffer, DoneCallback doneCallback) throws Exception
Called when request data is received from the client.
NOTE: this method should not block as it runs on a socket acceptor thread. If you need to do any blocking operations it is recommended you process the data on another thread.
buffer
- A buffer holding some of the request body datadoneCallback
- This must be called when the buffer is no longer neededException
- Any thrown exceptions will cause the onError(Throwable)
method to be called with the
thrown exception as a parameter.void onComplete()
void onError(Throwable t)
t
- The error.Copyright © 2017–2020. All rights reserved.