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;
}