Example usage for org.apache.http.nio.util SimpleInputBuffer SimpleInputBuffer

List of usage examples for org.apache.http.nio.util SimpleInputBuffer SimpleInputBuffer

Introduction

In this page you can find the example usage for org.apache.http.nio.util SimpleInputBuffer SimpleInputBuffer.

Prototype

public SimpleInputBuffer(int buffersize, final ByteBufferAllocator allocator) 

Source Link

Usage

From source file:org.elasticsearch.client.HeapBufferedAsyncResponseConsumer.java

@Override
protected void onEntityEnclosed(HttpEntity entity, ContentType contentType) throws IOException {
    long len = entity.getContentLength();
    if (len > bufferLimitBytes) {
        throw new ContentTooLongException("entity content is too long [" + len
                + "] for the configured buffer limit [" + bufferLimitBytes + "]");
    }/*from w w  w.  j  av a  2s .c  o  m*/
    if (len < 0) {
        len = 4096;
    }
    this.buf = new SimpleInputBuffer((int) len, getByteBufferAllocator());
    this.response.setEntity(new ContentBufferEntity(entity, this.buf));
}

From source file:com.alibaba.openapi.client.rpc.AliNHttpRequstExecutionHandler.java

public ConsumingNHttpEntity responseEntity(final HttpResponse httpResponse, final HttpContext context)
        throws IOException {
    //System.out.println("AliNHttpRequstExecutionHandler responseEntity");

    LoggerHelper.getClientLogger().finer("Enter request handler's response entity.");
    final InvokeContext invokeContext = (InvokeContext) context.getAttribute(CONTEXT_ATTACHMENT);
    final Response response = protocolProvider
            .getResponseParser(invokeContext.getPolicy().getResponseProtocol())
            .initResponse(httpResponse, invokeContext);
    //ConsumingNHttpEntityTemplateContentListener??
    ContentListener contentListener = new ContentListener() {
        private final SimpleInputBuffer buffer = new SimpleInputBuffer(2048, allocator);

        @SuppressWarnings("unchecked")
        public void finished() {
            InputStream istream = new ContentInputStream(this.buffer);
            protocolProvider.getResponseParser(invokeContext.getPolicy().getResponseProtocol())
                    .parseResponse(httpResponse, istream, response, invokeContext);
            invokeContext.completed();/*from   ww  w.ja  v  a 2s .  co  m*/
            if (response.getException() != null) {
                invokeContext.failed(response.getException());
            } else {
                try {
                    ((FutureCallback<Object>) invokeContext.getCallback()).completed(response.getResult());
                } catch (RuntimeException e) {
                    invokeContext.failed(e);
                }
            }
        }

        //TODO ??,??
        public void contentAvailable(ContentDecoder decoder, IOControl ioctrl) throws IOException {
            this.buffer.consumeContent(decoder);
            LoggerHelper.getClientLogger().finer("content Listener " + this.buffer.available());
        }
    };
    HttpEntity entity = httpResponse.getEntity();
    return new ConsumingNHttpEntityTemplate(entity, contentListener);
}