1
我想在Android的春天POST請求。它發送一些鍵值對正常工作,如果我使用的是春天的Android - POST請求 - URL編碼PARAMS從Object類
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
。 有什麼辦法可以避免MultiValueMap &直接發送類對象請求。
一個解決方案中,採用反射,像下面
for (Field field:objAuth.getClass().getDeclaredFields()){
field.setAccessible(true);
map.add(field.getName(),field.get(objAuth)+"");
}
代碼段
RestTemplate restTemplate = new RestTemplate(true);
restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
Authenticate objAuth = new Authenticate();
objAuth.setUserId("1");
objAuth.setType("Type");
objAuth.setoAuthToken("00112233");
objAuth.setResponseCode("9689");
objAuth.setResponseMessage("Last Message");
/**
* Using Reflection
*/
for (Field field:objAuth.getClass().getDeclaredFields()){
field.setAccessible(true);
map.add(field.getName(),field.get(objAuth)+"");
}
HttpEntity<?> requestEntity = new HttpEntity<Object>(map , requestHeaders);
String response = restTemplate.postForObject("http://posttestserver.com/post.php",requestEntity, String.class);
爲什麼選擇下投票? –