cdm/src/main/java/ucar/nc2/stream/CdmRemote.java
public static InputStream sendQuery(HTTPSession session, String remoteURI, String query) throws IOException {
    long start = System.currentTimeMillis();

    StringBuilder sbuff = new StringBuilder(remoteURI);
    sbuff.append("?");
    sbuff.append(query);
    if (showRequest) System.out.printf(" CdmRemote sendQuery= %s", sbuff);

    HTTPMethod method = HTTPFactory.Get(session, sbuff.toString());
    try {
      int statusCode = method.execute();
      if (statusCode == 404) {
        throw new FileNotFoundException(method.getPath() + " " + method.getStatusLine());
      } else if (statusCode >= 400) {
        throw new IOException(method.getPath() + " " + method.getStatusLine());
      }

      InputStream stream = method.getResponseBodyAsStream();
      if (showRequest) System.out.printf(" took %d msecs %n", System.currentTimeMillis() - start);

      // Leave the stream open. We must also leave the HTTPMethod open because the two are linked:
      // calling close() on one object causes the other object to be closed as well.
      return stream;
    } catch (IOException e) {
      // Close the HTTPMethod if there was an exception; otherwise leave it open.
      method.close();
      throw e;
    }
  }
public static InputStream sendQuery(HTTPSession session, String remoteURI, String query) throws IOException {
    long start = System.currentTimeMillis();

    StringBuilder sbuff = new StringBuilder(remoteURI);
    sbuff.append("?");
    sbuff.append(query);
    if (showRequest) System.out.printf(" CdmRemote sendQuery= %s", sbuff);

    HTTPMethod method = HTTPFactory.Get(session, sbuff.toString());
    try {
      int statusCode = method.execute();
      if (statusCode == 404) {
        throw new FileNotFoundException(method.getPath() + " " + method.getStatusLine());
      } else if (statusCode >= 400) {
        throw new IOException(method.getPath() + " " + method.getStatusLine());
      }

      InputStream stream = method.getResponseBodyAsStream();
      if (showRequest) System.out.printf(" took %d msecs %n", System.currentTimeMillis() - start);

      // Leave the stream open. We must also leave the HTTPMethod open because the two are linked:
      // calling close() on one object causes the other object to be closed as well.
      return stream;
    } catch (IOException e) {
      // Close the HTTPMethod if there was an exception; otherwise leave it open.
      method.close();
      throw e;
    }
  }
public static InputStream sendQuery ( HTTPSession session , String remoteURI , String query ) throws IOException { long start = System . currentTimeMillis ( ) ; StringBuilder sbuff = new StringBuilder ( remoteURI ) ; sbuff . append ( "?" ) ; sbuff . append ( query ) ; if ( showRequest ) System . out . printf ( " CdmRemote sendQuery= %s" , sbuff ) ; HTTPMethod method = HTTPFactory . Get ( session , sbuff . toString ( ) ) ; try { int statusCode = method . execute ( ) ; if ( statusCode == 404 ) { throw new FileNotFoundException ( method . getPath ( ) + " " + method . getStatusLine ( ) ) ; } else if ( statusCode >= 400 ) { throw new IOException ( method . getPath ( ) + " " + method . getStatusLine ( ) ) ; } InputStream stream = method . getResponseBodyAsStream ( ) ; if ( showRequest ) System . out . printf ( " took %d msecs %n" , System . currentTimeMillis ( ) - start ) ; // Leave the stream open. We must also leave the HTTPMethod open because the two are linked: // calling close() on one object causes the other object to be closed as well. return stream ; } catch ( IOException e ) { // Close the HTTPMethod if there was an exception; otherwise leave it open. method . close ( ) ; throw e ; } }
session may be null, if so, will be closed on method.close()
session may be null if so will be closed on method . close ()