Spring-RestTemplate解析json檔案
阿新 • • 發佈:2020-09-07
配置bean:
@Bean(name="agvRestTemplate") public RestTemplate agvRestTemplate() { RestTemplate restTemplate = new RestTemplate(); //重點:用於將JSON、application/octet-stream MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM)); restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter); return restTemplate; }
注入 @Autowired @Qualifier(value = "agvRestTemplate") RestTemplate agvRestTemplate; String url = agvResource.getCallmaterial(); Map param = new HashMap(); param.put("orderId", agvLog.getOrderId()); Map params = new HashMap(); params.put("call_request", param); //postForObject(url,param1,ClassName),url:請求地址,param1:請求引數 ClassName請求引數對應的實體類名。 //postForObject主要是將請求引數轉化為HttpEntity物件 //url為String型別,會自動轉換成encodedurl,為java.net.URI,會進一步encoded,畫蛇添足[1] Map result = agvRestTemplate.postForObject(url, params, Map.class); //getForObject(url,respType,MapVariables),respType:響應資料的型別,MapVariables:urlvariable引數,Map型別,key值需對應url中的變數 //url:http://127.0.0.1:8080/agv/require?order_id={orderId},注意orderId Map result = agvRestTemplate.postForObject(url, params, Map.class);
【1】:出處