Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyClass {
- int users[];
- public int[] getUsers() { return users; }
- public void setUsers(int[] users) {this.users = users;}
- }
- public class ResponseWrapper <T> {
- T response;
- public T getResponse () { return response; }
- public void setResponse(T response) {this.response = response;}
- }
- public ResponseWrapper<MyClass> makeRequest(URI uri) {
- ResponseEntity<ResponseWrapper<MyClass>> response = template.exchange(
- uri,
- HttpMethod.POST,
- null,
- new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {});
- return response;
- }
- public <T> ResponseWrapper<T> makeRequest(URI uri, Class<T> clazz) {
- ResponseEntity<ResponseWrapper<T>> response = template.exchange(
- uri,
- HttpMethod.POST,
- null,
- new ParameterizedTypeReference<ResponseWrapper<T>>() {});
- return response;
- }
- makeRequest(uri, MyClass.class)
- new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {}
- new ParameterizedTypeReference<ResponseWrapper<T>>() {}
- class FakeParameterizedTypeReference<T> extends ParameterizedTypeReference<T> {
- @Override
- public Type getType() {
- Type [] responseWrapperActualTypes = {MyClass.class};
- ParameterizedType responseWrapperType = new ParameterizedTypeImpl(
- ResponseWrapper.class,
- responseWrapperActualTypes,
- null
- );
- return responseWrapperType;
- }
- }
- template.exchange(
- uri,
- HttpMethod.POST,
- null,
- new FakeParameterizedTypeReference<ResponseWrapper<T>>());
- List<HttpMessageConverter<?>> oldConverters = new ArrayList<HttpMessageConverter<?>>();
- oldConverters.addAll(template.getMessageConverters());
- List<HttpMessageConverter<?>> stringConverter = new ArrayList<HttpMessageConverter<?>>();
- stringConverter.add(new StringHttpMessageConverter());
- template.setMessageConverters(stringConverter);
- ResponseEntity<String> response = template.exchange(uri, HttpMethod.GET, null, String.class);
- String body = null;
- List<T> result = new ArrayList<T>();
- ObjectMapper mapper = new ObjectMapper();
- if (response.hasBody()) {
- body = items.getBody();
- try {
- result = mapper.readValue(body, mapper.getTypeFactory().constructCollectionType(List.class, clazz));
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- template.setMessageConverters(oldConverters);
- }
- ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement