public <T> T doGet(String url, Class<T> tClass) throws Throwable {
        long start = System.currentTimeMillis();
        CloseableHttpClient httpClient = getCloseableHttpClient();
        CloseableHttpResponse response = null;
        try {
            HttpGet httpGet = new HttpGet(url);
            RequestConfig requestConfig = parseRequestConfig();
            httpGet.setConfig(requestConfig);
            response = httpClient.execute(httpGet);
            HttpEntity entity = response.getEntity();
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("http client get success. url: {}. latency: {}ms.", url, System.currentTimeMillis() -
                    start);
            }
            return JSON.parseObject(EntityUtils.toString(entity), tClass);
        } catch (Throwable throwable) {
            LOGGER.error("http client get error. url: " + url + ". latency: " + (System.currentTimeMillis() - start) +
                "ms.", throwable);
            throw throwable;
        } finally {
            if (response != null) {
                try {
                    response.close();
                } catch (IOException e) {
                    LOGGER.error("http client get close response error.", e);
                }
            }
        }
    }
@author <a href=mailto:zhiyuan.lzy@antfin.com>zhiyuan.lzy</a>
core-impl/client/src/main/java/com/alipay/sofa/rpc/client/http/RpcHttpClient.java