private String doRequest()

in cli/src/main/java/org/apache/uniffle/client/RestClientImpl.java [65:103]


  private String doRequest(URI uri, String authHeader, RequestBuilder requestBuilder) {
    String response;
    try {
      if (requestBuilder.getFirstHeader(HttpHeaders.CONTENT_TYPE) == null) {
        requestBuilder.setHeader(
            HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType());
      }
      if (StringUtils.isNotBlank(authHeader)) {
        requestBuilder.setHeader(HttpHeaders.AUTHORIZATION, authHeader);
      }
      HttpUriRequest httpRequest = requestBuilder.setUri(uri).build();

      LOG.debug("Executing {} request: {}", httpRequest.getMethod(), uri);

      ResponseHandler<String> responseHandler =
          resp -> {
            int status = resp.getStatusLine().getStatusCode();
            HttpEntity entity = resp.getEntity();
            String entityStr = entity != null ? EntityUtils.toString(entity) : null;
            if (status >= 200 && status < 300) {
              return entityStr;
            } else {
              throw new HttpResponseException(status, entityStr);
            }
          };

      response = httpclient.execute(httpRequest, responseHandler);
      LOG.debug("Response: {}", response);
    } catch (ConnectException | ConnectTimeoutException | NoHttpResponseException e) {
      throw new UniffleRestException("Api request failed for " + uri.toString(), e);
    } catch (UniffleRestException rethrow) {
      throw rethrow;
    } catch (Exception e) {
      LOG.error("Error: ", e);
      throw new UniffleRestException("Api request failed for " + uri.toString(), e);
    }

    return response;
  }