2017-08-23 80 views
1

我有一個捲曲的字符串,如:春RestTemplate與網站Setlist.fm

捲曲-X GET --header '接受:應用程序/ XML' --header「X-API密鑰:KEY'https://api.setlist.fm/rest/1.0/search/setlists?artistName=Springsteen&date=03-07-2016&p=1

請求URL是:https://api.setlist.fm/rest/1.0/search/setlists?artistName=Springsteen&date=03-07-2016&p=1

這是Android的部份正確的Java運行的代碼? 我有

RestTemplate restTemplate = new RestTemplate(); 
Map<String, Object> requestBody = new HashMap<String, Object>(); 
requestBody.put("artistName", "Springsteen"); 
requestBody.put("date", "" + dataConcerto); 

HttpHeaders headers = new HttpHeaders(); 
headers.setContentType(MediaType.APPLICATION_JSON); 
headers.set("x-api-key", "key"); 

HttpEntity<String> request = new HttpEntity<String>(requestBody.toString(), headers); 

String response = restTemplate.exchange("https://api.setlist.fm/rest/1.0/search/setlists", HttpMethod.GET, request, String.class).getBody(); 

回答

0

那麼問題是requestBody.toString()。您必須將參數添加爲查詢字符串參數。例如。

final HttpHeaders headers = new HttpHeaders(); 
headers.setContentType(MediaType.APPLICATION_JSON); 
headers.set("x-api-key", "yourkey"); 

final UriComponentsBuilder b = UriComponentsBuilder.fromHttpUrl("https://api.setlist.fm/rest/1.0/search/setlists"); 
b.queryParam("artistName", "Springsteen"); 

final String response = restTemplate.exchange(b.toUriString(), HttpMethod.GET, new HttpEntity<>(headers), String.class).getBody(); 
System.out.println(response); 
+0

非常感謝! –