@@ -516,35 +516,36 @@ private HttpPost createPostRequest(URI uri, Map<String, Object> requestConfig) {
516516 public ClassicHttpResponse executeRequest (Endpoint server , Map <String , Object > requestConfig ,
517517 String body ) throws Exception {
518518
519- final URI uri = createRequestURI (server , requestConfig , true );
520- final HttpPost req = createPostRequest (uri , requestConfig );
521- final String contentEncoding = req .containsHeader (HttpHeaders .CONTENT_ENCODING ) ? req .getHeader (HttpHeaders .CONTENT_ENCODING ).getValue () : null ;
522-
523- HttpEntity httpEntity = new ByteArrayEntity (body .getBytes (StandardCharsets .UTF_8 .name ()), CONTENT_TYPE , contentEncoding );
524- req .setEntity (wrapRequestEntity (httpEntity , requestConfig ));
525-
526- return doPostRequest (requestConfig , req );
527- }
528-
529- public ClassicHttpResponse executeMultiPartRequest (Endpoint server , Map <String , Object > requestConfig , String sqlQuery ) throws Exception {
519+ boolean useMultipart = ClientConfigProperties .HTTP_SEND_PARAMS_IN_BODY .<Boolean >getOrDefault (requestConfig ) &&
520+ requestConfig .containsKey (HttpAPIClientHelper .KEY_STATEMENT_PARAMS );
530521
531- requestConfig .put (ClientConfigProperties .COMPRESS_CLIENT_REQUEST .getKey (), false );
522+ // adjust configuration
523+ if (useMultipart ) {
524+ requestConfig .put (ClientConfigProperties .COMPRESS_CLIENT_REQUEST .getKey (), false ); // turn-off client-req compression
525+ }
532526
533- final URI uri = createRequestURI (server , requestConfig , false );
527+ // create configuration dependent objects
528+ final URI uri = createRequestURI (server , requestConfig , !useMultipart );
534529 final HttpPost req = createPostRequest (uri , requestConfig );
535530
536- MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder . create ();
537- addStatementParams ( requestConfig , multipartEntityBuilder :: addTextBody );
538- multipartEntityBuilder . addTextBody ( ClickHouseHttpProto . QPARAM_QUERY_STMT , sqlQuery );
539-
531+ if ( useMultipart ) {
532+ MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder . create ( );
533+ addStatementParams ( requestConfig , multipartEntityBuilder :: addTextBody );
534+ multipartEntityBuilder . addTextBody ( ClickHouseHttpProto . QPARAM_QUERY_STMT , body );
540535
541- HttpEntity httpEntity = multipartEntityBuilder .build ();
542- req .setHeader (HttpHeaders .CONTENT_TYPE , httpEntity .getContentType ()); // set proper content type with generated boundary value
543- req .setEntity (wrapRequestEntity (httpEntity , requestConfig ));
536+ HttpEntity httpEntity = multipartEntityBuilder .build ();
537+ req .setHeader (HttpHeaders .CONTENT_TYPE , httpEntity .getContentType ()); // set proper content type with generated boundary value
538+ req .setEntity (wrapRequestEntity (httpEntity , requestConfig ));
544539
545- return doPostRequest (requestConfig , req );
540+ } else {
541+ final String contentEncoding = req .containsHeader (HttpHeaders .CONTENT_ENCODING ) ? req .getHeader (HttpHeaders .CONTENT_ENCODING ).getValue () : null ;
546542
543+ HttpEntity httpEntity = new ByteArrayEntity (body .getBytes (StandardCharsets .UTF_8 .name ()), CONTENT_TYPE , contentEncoding );
544+ req .setEntity (wrapRequestEntity (httpEntity , requestConfig ));
545+ }
547546
547+ // execute
548+ return doPostRequest (requestConfig , req );
548549 }
549550
550551 public ClassicHttpResponse executeRequest (Endpoint server , Map <String , Object > requestConfig ,
0 commit comments