in client/src/main/java/org/apache/rocketmq/schema/registry/client/util/HttpUtil.java [40:87]
public static <T> T sendHttpRequest(String requestUrl, String method, String requestBodyData,
Map<String, String> requestProperties,
TypeReference<T> responseFormat)
throws IOException, RestClientException {
HttpURLConnection connection = null;
try {
URL url = new URL(requestUrl);
connection = buildConnection(url, method, requestProperties);
if (requestBodyData != null) {
connection.setDoOutput(true);
try (OutputStream os = connection.getOutputStream()) {
os.write(requestBodyData.getBytes(StandardCharsets.UTF_8));
os.flush();
} catch (IOException e) {
throw e;
}
}
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream is = connection.getInputStream();
T result = jsonParser.readValue(is, responseFormat);
is.close();
return result;
} else {
ErrorMessage errorMessage;
try (InputStream es = connection.getErrorStream()) {
if (es != null) {
errorMessage = jsonParser.readValue(es, ErrorMessage.class);
} else {
errorMessage = new ErrorMessage(PARSE_ERROR_CODE, "request error");
}
} catch (JsonProcessingException e) {
errorMessage = new ErrorMessage(PARSE_ERROR_CODE, e.getMessage());
}
throw new RestClientException(errorMessage.getStatus(), errorMessage.getMessage());
}
} finally {
if (connection != null) {
connection.disconnect();
}
}
}