Spring RestTemplate 与站点 Setlist.fm
Spring RestTemplate with site Setlist.fm
我有一个 curl 字符串,例如:
curl -X GET --header 'Accept: application/xml' --header 'x-api-key: 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();
嗯,问题是 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);
我有一个 curl 字符串,例如:
curl -X GET --header 'Accept: application/xml' --header 'x-api-key: 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();
嗯,问题是 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);