Comment pouvez-vous passer un tableau dans un POST avec le Printemps RestTemplate?
J'ai de la difficulté du passage d'un tableau dans un POST à l'aide du Printemps RestTemplate. Voici mon code que j'utilise:
Je suis appelant le RestTemplate ici:
private static void sendEntries() {
RestTemplate restTemplate = new RestTemplate();
String uri = "http://localhost:8080/api/log/list.json";
//Both LogEntry and ExceptionEntry extend Entry
LogEntry entry1 = new LogEntry();
ExceptionException entry2 = new ExceptionEntry();
Entry[] entries = {entry1, entry2};
entries = restTemplate.postForObject(uri, entries, Entry[].class);
System.out.println(new Gson().toJson(entries));
}
Et le Contrôleur contient:
@RequestMapping(value = "api/log/list", method = RequestMethod.POST)
public @ResponseBody Entry[] saveList(@RequestBody Entry[] entries) {
for (Entry entry : entries) {
entry = save(entry);
}
return entries;
}
Il en résulte une:
org.springframework.web.client.HttpClientErrorException: 400 Bad Request
Il ne semble pas que le tableau est ajouté à la demande. Tous les autres POST de demande de travail quand je ne suis pas en essayant de passer un tableau. Je suis tout simplement pas sûr de ce que je dois faire pour obtenir le tableau pour passer au-dessus correctement.
Est-ce la bonne façon de le faire? Est-il possible de passer d'une Collection à la place?
Double Possible de Comment utiliser le Printemps RestTemplate de publier un tableau de chaînes de caractères
OriginalL'auteur Joe | 2013-11-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez consulter ce post: Comment passer de la Liste ou de tableau de Chaîne de getForObject avec le Printemps RestTemplate, la solution pour que le post est:
Liste ou d'un autre type d'objets peut poster avec RestTemplate de postForObject méthode. Ma solution est comme ci-dessous:
contrôleur:
Créer un objet de requête pour l'affichage de service:
Créer un objet de réponse pour obtenir des valeurs de service:
Post point de la liste avec l'objet de demande et d'obtenir la réponse de l'objet du service:
OriginalL'auteur vtokmak
Comment POSTER tableau:
La demande POST aura structure suivante:
Sur le côté Serveur:
OriginalL'auteur Yuliia Ashomok
Essayez cet exemple
De modifier votre demande de cartographie de
à
et votre URL dans restTemplate
changement d'URl dans le format donné
Je ne peut pas l'appliquer, vous pouvez essayer vous-même je vous ai donné pointeur
Consultez le lien ci-dessous stackoverflow.com/questions/14153036/...
J'ai lu ce post avant de poster ma propre question. Je ne suis pas de passage String[] comme il est. Il est tout simplement de la concaténation de chaînes et de construire son uri. Je pourrais simplement faire de même en utilisant JSON et de les convertir en arrière pour les objets du Contrôleur, mais j'essaie d'éviter que si RestTemplate va le faire pour moi. Aussi, je ne souhaite pas changer mon RequestMethod à OBTENIR.
a u essayez de T> T postForObject(String url, demande d'Objet, de Classe<T> responseType, Map<String,?> uriVariables) Créer une nouvelle ressource par l'Affichage de l'objet donné à l'URI de modèle, et retourne la représentation trouvé dans la réponse.
OriginalL'auteur constantlearner