public static T sendHttpRequest()

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