Example usage for org.apache.http.impl.io SessionInputBufferImpl SessionInputBufferImpl

List of usage examples for org.apache.http.impl.io SessionInputBufferImpl SessionInputBufferImpl

Introduction

In this page you can find the example usage for org.apache.http.impl.io SessionInputBufferImpl SessionInputBufferImpl.

Prototype

public SessionInputBufferImpl(HttpTransportMetricsImpl httpTransportMetricsImpl, int i) 

Source Link

Usage

From source file:com.meplato.store2.MockResponse.java

/**
 * Parse a response from String contents.
 *
 * @param contents// w ww  .j  a  va  2 s.c o  m
 * @return String contents
 * @throws IOException
 * @throws HttpException
 * @throws ServiceException
 */
public static Response fromContents(String contents) throws IOException, HttpException, ServiceException {
    // If this code works, it was written by Georg Wall.
    SessionInputBufferImpl sib = new SessionInputBufferImpl(new HttpTransportMetricsImpl(), 65535);
    sib.bind(new ByteArrayInputStream(contents.getBytes(Consts.UTF_8)));
    DefaultHttpResponseParser parser = new DefaultHttpResponseParser(sib);
    HttpResponse httpResponse = parser.parse();
    int endOfHeader = contents.indexOf("\r\n\r\n");
    if (endOfHeader >= 0) {
        endOfHeader += 4; // for \r\n\r\n
        byte[] bytes = contents.getBytes(Consts.UTF_8);
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes, endOfHeader, bytes.length - endOfHeader);
        InputStreamEntity entity = new InputStreamEntity(bais);
        entity.setContentType(httpResponse.getFirstHeader("Content-Type"));
        entity.setContentEncoding(httpResponse.getFirstHeader("Content-Encoding"));
        httpResponse.setEntity(entity);
    }
    return new ApacheHttpResponse(httpResponse);
}

From source file:org.commonjava.indy.httprox.handler.ProxyRequestReader.java

@Override
public void handleEvent(final ConduitStreamSourceChannel sourceChannel) {
    boolean sendResponse = false;
    try {/*  w  ww.  j av a2s .  c  o  m*/
        final int read = doRead(sourceChannel);

        if (read <= 0) {
            logger.debug("Reads: {} ", read);
            return;
        }

        byte[] bytes = bReq.toByteArray();

        if (sslTunnel != null) {
            logger.debug("Send to ssl tunnel, {}, bytes:\n\n {}\n", new String(bytes),
                    Hex.encodeHexString(bytes));
            directTo(sslTunnel);
            return;
        }

        logger.debug("Request in progress is:\n\n{}", new String(bytes));

        if (headDone) {
            logger.debug("Request done. parsing.");
            MessageConstraints mc = MessageConstraints.DEFAULT;
            SessionInputBufferImpl inbuf = new SessionInputBufferImpl(new HttpTransportMetricsImpl(), 1024);
            HttpRequestFactory requestFactory = new DefaultHttpRequestFactory();
            LineParser lp = new BasicLineParser();

            DefaultHttpRequestParser requestParser = new DefaultHttpRequestParser(inbuf, lp, requestFactory,
                    mc);

            inbuf.bind(new ByteArrayInputStream(bytes));

            try {
                logger.debug("Passing parsed http request off to response writer.");
                HttpRequest request = requestParser.parse();
                logger.debug("Request contains {} header: '{}'", ApplicationHeader.authorization.key(),
                        request.getHeaders(ApplicationHeader.authorization.key()));

                writer.setHttpRequest(request);
                sendResponse = true;
            } catch (ConnectionClosedException e) {
                logger.warn("Client closed connection. Aborting proxy request.");
                sendResponse = false;
                sourceChannel.shutdownReads();
            } catch (HttpException e) {
                logger.error("Failed to parse http request: " + e.getMessage(), e);
                writer.setError(e);
            }
        } else {
            logger.debug("Request not finished. Pausing until more reads are available.");
            sourceChannel.resumeReads();
        }
    } catch (final IOException e) {
        writer.setError(e);
        sendResponse = true;
    }

    if (sendResponse) {
        sinkChannel.resumeWrites();
    }
}

From source file:it.tidalwave.bluemarine2.downloader.impl.SimpleHttpCacheStorage.java

/*******************************************************************************************************************
 *
 * // www .  ja v  a 2  s  . c  o m
 *
 ******************************************************************************************************************/
@Nonnull
private static SessionInputBufferImpl sessionInputBufferFrom(final @Nonnull InputStream is) {
    final HttpTransportMetricsImpl metrics = new HttpTransportMetricsImpl();
    final SessionInputBufferImpl sib = new SessionInputBufferImpl(metrics, 100);
    sib.bind(is);
    return sib;
}