wysyłanie danych json pocztą przy użyciu szablonu odpoczynku od wiosny
Ciągle otrzymuję komunikat o błędzie mówiącym, że są to nieprawidłowe dane json i ciągle otrzymuję błąd 400. Nie sądzę, że implementacja, którą mam, prawidłowo formatuje dane.
Cel: Próba wykonania połączenia pocztowego przy użyciu szablonu REST, przekazując dane JSON jako treść. Wygląda na to, że podczas konwersji danych z mapy do json nie konwertuje się nieprawidłowo na 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";
}
}
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Twój kod JSON jest nieprawidłowy, ponieważ GSON domyślnie wymyka się ze znaków HTML i umieszcza pojedyncze cudzysłowy jako równoważny kod znaku Unicode U + 0027
jeśli się rozłączysz
Gson HTMLEscaping
http://google-gson.googlecode. ... %2529
Dostaniesz
w każdym razie twój JSON jest nadal zły.
Musisz poprawić kluczową zawartość na mapie
map.put("venue_queries", "[{\"name\":\""+name+"\", \"location\": {\"locality\": \""+city+"\"}}]");
wtedy wynikowy JSON będzie prawidłowy
Fragment Tes