List of usage examples for org.apache.http.impl.io SessionInputBufferImpl bind
public void bind(InputStream inputStream)
From source file:com.meplato.store2.MockResponse.java
/** * Parse a response from String contents. * * @param contents/*from www. jav a 2 s .co 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:it.tidalwave.bluemarine2.downloader.impl.SimpleHttpCacheStorage.java
/******************************************************************************************************************* * * /*w ww.j a va2s .co 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; }
From source file:it.unimi.di.law.warc.io.AbstractWarcReader_NYU.java
protected void setInput(final InputStream input) { final SessionInputBufferImpl bufferImpl = new SessionInputBufferImpl(metrics, BUFFER_SIZE, 0, null, null); bufferImpl.bind(input); this.buffer = bufferImpl; this.payload = null; this.skip = false; }
From source file:org.commonjava.indy.httprox.handler.ProxyRequestReader.java
@Override public void handleEvent(final ConduitStreamSourceChannel sourceChannel) { boolean sendResponse = false; try {/*from ww w .j a v 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(); } }