envoyer des données json par le biais d'un appel post en utilisant le repos du modèle à partir du printemps

Je reçois un message d'erreur disant que ce n'est pas valide les données json et reçois l'erreur 400. Je ne pense pas que la mise en œuvre que j'ai est mise en forme des données correctement.
Objectif: essayer de faire un post appel à l'aide du reste du modèle, en passant par les données JSON comme le corps. Il semble que lors de la conversion de la carte de données json, il n'est pas correctement converti en json.

public void GetJsonData(String name, String city) {
Map<String, String> map = new HashMap<String, String>();
map.put("api_key", apikey);
map.put("venue_queries", "[{'name':'"+name+"', 'location': {'locality': '"+city+"'}}]");
try {
String resp = GlobalHelper.calltestService(RestServicesUrl, map);
System.out.println(resp);
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
public String calltestService(String url, Map<String, String> data) throws Exception {
RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
ResponseEntity<String> response = new ResponseEntity<String>(headers, HttpStatus.OK);
rest.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Gson gson = new Gson();
System.out.println(gson.toJson(data));
try {
response = rest.postForEntity(url, gson.toJson(data), String.class);
System.out.println(response.getBody()); 
System.out.println(response.getHeaders());
return response.getBody();
} catch (Exception e) {
e.printStackTrace();
System.out.println("error in post entity");
return "error";
}
}
InformationsquelleAutor | 2014-04-04