2017-08-23 1 views
1

J'ai une chaîne boucle comme:Spring RestTemplate avec le site Setlist.fm

boucle -X GET --header 'Accepter: application/xml' --header 'x-api-clé: KEY' 'https://api.setlist.fm/rest/1.0/search/setlists?artistName=Springsteen&date=03-07-2016&p=1 '

demande url est: https://api.setlist.fm/rest/1.0/search/setlists?artistName=Springsteen&date=03-07-2016&p=1

Quel est le code de travail correct ths java dans Android? Je

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(); 

Répondre

0

Eh bien, le problème est le requestBody.toString(). Vous devez ajouter les paramètres en tant que paramètres de chaîne de requête. Par exemple.

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

Merci beaucoup! –