Advertisement
Guest User

Untitled

a guest
May 6th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. public class MyClass {
  2. int users[];
  3.  
  4. public int[] getUsers() { return users; }
  5. public void setUsers(int[] users) {this.users = users;}
  6. }
  7.  
  8. public class ResponseWrapper <T> {
  9. T response;
  10.  
  11. public T getResponse () { return response; }
  12. public void setResponse(T response) {this.response = response;}
  13. }
  14.  
  15. public ResponseWrapper<MyClass> makeRequest(URI uri) {
  16. ResponseEntity<ResponseWrapper<MyClass>> response = template.exchange(
  17. uri,
  18. HttpMethod.POST,
  19. null,
  20. new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {});
  21. return response;
  22. }
  23.  
  24. public <T> ResponseWrapper<T> makeRequest(URI uri, Class<T> clazz) {
  25. ResponseEntity<ResponseWrapper<T>> response = template.exchange(
  26. uri,
  27. HttpMethod.POST,
  28. null,
  29. new ParameterizedTypeReference<ResponseWrapper<T>>() {});
  30. return response;
  31. }
  32.  
  33. makeRequest(uri, MyClass.class)
  34.  
  35. new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {}
  36.  
  37. new ParameterizedTypeReference<ResponseWrapper<T>>() {}
  38.  
  39. class FakeParameterizedTypeReference<T> extends ParameterizedTypeReference<T> {
  40.  
  41. @Override
  42. public Type getType() {
  43. Type [] responseWrapperActualTypes = {MyClass.class};
  44. ParameterizedType responseWrapperType = new ParameterizedTypeImpl(
  45. ResponseWrapper.class,
  46. responseWrapperActualTypes,
  47. null
  48. );
  49. return responseWrapperType;
  50. }
  51. }
  52.  
  53. template.exchange(
  54. uri,
  55. HttpMethod.POST,
  56. null,
  57. new FakeParameterizedTypeReference<ResponseWrapper<T>>());
  58.  
  59. List<HttpMessageConverter<?>> oldConverters = new ArrayList<HttpMessageConverter<?>>();
  60. oldConverters.addAll(template.getMessageConverters());
  61.  
  62. List<HttpMessageConverter<?>> stringConverter = new ArrayList<HttpMessageConverter<?>>();
  63. stringConverter.add(new StringHttpMessageConverter());
  64.  
  65. template.setMessageConverters(stringConverter);
  66.  
  67. ResponseEntity<String> response = template.exchange(uri, HttpMethod.GET, null, String.class);
  68.  
  69. String body = null;
  70. List<T> result = new ArrayList<T>();
  71. ObjectMapper mapper = new ObjectMapper();
  72.  
  73. if (response.hasBody()) {
  74. body = items.getBody();
  75. try {
  76. result = mapper.readValue(body, mapper.getTypeFactory().constructCollectionType(List.class, clazz));
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. } finally {
  80. template.setMessageConverters(oldConverters);
  81. }
  82. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement