コード例 #1
0
  /**
   * Reads the response body from the given input stream.
   *
   * @param is the input stream
   * @param exchange the exchange
   * @return the response body, can be <tt>null</tt> if no body
   * @throws IOException is thrown if error reading response body
   */
  public static Object readResponseBodyFromInputStream(InputStream is, Exchange exchange)
      throws IOException {
    if (is == null) {
      return null;
    }

    // convert the input stream to StreamCache if the stream cache is not disabled
    if (exchange.getProperty(Exchange.DISABLE_HTTP_STREAM_CACHE, Boolean.FALSE, Boolean.class)) {
      return is;
    } else {
      CachedOutputStream cos = new CachedOutputStream(exchange);
      IOHelper.copyAndCloseInput(is, cos);
      return cos.newStreamCache();
    }
  }