J'utilise Spring framework pour obtenir des données JSON d'un serveur local dans un objet via Http GET. Mais l'objet est toujours nul (pas de données stockées)Spring Android Framework - Récupération de données JSON via HTTP GET
- j'ai vérifié deux fois le serveur et il fonctionne très bien
- le serveur retourne
{"Propid":"61", "Proptitle":"3 bhk villa","Propdealer":"admin"}
- J'ai ajouté les bibliothèques Jackson
- J'ai utilisé StringHttpMessageConverter et il retourne la chaîne JSON
{"Propid":"61", "Proptitle":"3 bhk villa","Propdealer":"admin"}
throws exception: Could not extract response: no suitable HttpMessageConverter found for response type [com.aditya.master.classes.Prop] and content type [text/html;charset=UTF-8]
Voici le code qui analyse la réponse JSON
URI targetUrl= UriComponentsBuilder.fromUriString("http://192.168.1.9/PinSpace/oauth/")
.path("request_access/")
.queryParam("query", "get_property")
.queryParam("access_token", auth_code)
.queryParam("prop_id", "61")
.build()
.toUri();
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(new MediaType("application", "json")));
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<Prop> responseEntity = restTemplate.exchange(targetUrl, HttpMethod.GET, requestEntity, Prop.class);
Prop result = responseEntity.getBody();
Voici la classe Prop
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Prop {
@JsonProperty
private String Propid, Proptitle, Propdealer;
public String getPropid() {
return Propid;
}
public void setPropid(String propid) {
Propid = propid;
}
public String getProptitle() {
return Proptitle;
}
public void setProptitle(String proptitle) {
Proptitle = proptitle;
}
public String getPropdealer() {
return Propdealer;
}
public void setPropdealer(String propdealer) {
Propdealer = propdealer;
}
}
S'il vous plaît suggérer une solution
Merci!
vide merci, votre code désérialisation fonctionne parfaitement mais le ressort jette une exception 'ne peut pas extraire la réponse: aucun HttpMessageConverter trouvé trouvé pour le type de réponse [com.aditya.master.classes.Prop] et le type de contenu [text/html; charset = UTF-8]' comme je l'ai mentionné dans l'édition –
Je l'ai résolu en définissant le type de contenu sur le serveur à l'application/JSON, Merci btw vide !! –
@AdityaReddi Vous êtes les bienvenus – vacuum