2017-07-07 79 views
0

我想调用休息API并从API获取数据。我需要在spring引导中为url添加动态参数。我有点失落,因为我应该如何去做。任何人都可以向我建议一些东西吗?将参数追加到Spring引导Java中的现有url?

RestTemplate restTemplate = new RestTemplate(); 
     String consumeJSONString = restTemplate.getForObject("https://maps.googleapis.com/maps/api/geocode/json?latlng=5.47686,-73.961452&key=YOUR_API_KEY" 
, String.class); 

我想动态地在URL中追加latlng和api键。我真的很感激任何建议。

回答

2

你必须使用getForObject方法

restTemplate.getForObject(url, responseType, uriVariables); 

所以它成为以下版本..

String url = "https://maps.googleapis.com/maps/api/geocode/json?latlng={latlng}&key={key}"; 

Map<String, Object> uriVariables = new HashMap<>(); 
uriVariables.put("latlng", "5.47686,-73.961452"); 
uriVariables.put("key", "YOUR_API_KEY"); 

String consumeJSONString = restTemplate.getForObject(url, String.class, uriVariables); 
0

随着我对动态变量 一个解决方案,这是一个REST URL

@RequestMapping(value = "/studentdetail") 
public User detailStudent(@RequestParam(value = "userid", required = true) String userid) throws SQLException { /*your task goes here*/} 

这就是即时通讯发送动态标准阿姆斯作为userid可以是任何希望它会帮助你很多

URL url = new URL("http://localhost:9090/testpapers?userid=" + userid); 
URLConnection conn = url.openConnection(); 

conn.setDoOutput(true); 
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 
String s1=URLEncoder.encode(postDataParams, "UTF-8"); 

writer.write(s1); 
writer.flush(); 
String line; 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 

while ((line = reader.readLine()) != null) 
{ 
    System.out.println(line); 
} 
writer.close(); 
reader.close(); 
}