public <T> HttpRestResult<T> exchange(String url, HttpClientConfig config, Header header, Query query,
            Object body, String httpMethod, Type responseType) throws Exception {
        RequestHttpEntity requestHttpEntity = new RequestHttpEntity(config, header, query, body);
        return execute(url, httpMethod, requestHttpEntity, responseType);
    }
@Test
    void testExchange() throws Exception {
        when(requestClient.execute(any(), eq("PUT"), any())).thenReturn(mockResponse);
        when(mockResponse.getStatusCode()).thenReturn(200);
        when(mockResponse.getBody()).thenReturn(new ByteArrayInputStream("test".getBytes()));
        HttpClientConfig config = HttpClientConfig.builder().setConTimeOutMillis(1000).build();
        HttpRestResult<String> result = restTemplate.exchange("http://127.0.0.1:8848/nacos/test", config, Header.EMPTY,
                Query.EMPTY, new Object(), "PUT", String.class);
        assertTrue(result.ok());
        assertEquals(Header.EMPTY, result.getHeader());
        assertEquals("test", result.getData());
    }