@@ -317,9 +317,10 @@ public <TResponse> TResponse send(String url, String httpMethod, Object request,
317317
318318 public <TResponse > TResponse send (String requestUrl , String httpMethod , byte [] requestBody , String requestType , Object responseClass ) {
319319 HttpURLConnection req = null ;
320+ Class resClass = null ;
320321 try {
321322 req = createRequest (requestUrl , httpMethod , requestBody , requestType );
322- Class resClass = responseClass instanceof Class ? (Class )responseClass : null ;
323+ resClass = responseClass instanceof Class ? (Class )responseClass : null ;
323324 Type resType = responseClass instanceof Type ? (Type )responseClass : null ;
324325 if (resClass == null && resType == null )
325326 throw new RuntimeException ("responseClass '" + responseClass .getClass ().getSimpleName () + "' must be a Class or Type" );
@@ -364,6 +365,8 @@ public <TResponse> TResponse send(String requestUrl, String httpMethod, byte[] r
364365 return (TResponse )Utils .readBytesToEnd (req );
365366 if (resClass == String .class )
366367 return (TResponse )Utils .readToEnd (is , UTF8 .name ());
368+ if (resClass == InputStream .class )
369+ return (TResponse )is ;
367370
368371 if (Log .isDebugEnabled ()) {
369372 String json = Utils .readToEnd (is , UTF8 .name ());
@@ -388,7 +391,7 @@ public <TResponse> TResponse send(String requestUrl, String httpMethod, byte[] r
388391 throw new RuntimeException (e );
389392 }
390393 finally {
391- if (req != null )
394+ if (req != null && resClass != InputStream . class )
392395 req .disconnect ();
393396 }
394397 }
0 commit comments