À l'aide de Printemps RestTemplate de POST params avec des objets
J'essaie d'envoyer une requête POST à l'aide du Printemps RestTemplate fonctionnalité mais j'ai un problème lors de l'envoi d'un objet. Ici c'est le code que j'utilise pour envoyer la demande:
RestTemplate rt = new RestTemplate();
MultiValueMap<String,Object> parameters = new LinkedMultiValueMap<String,Object>();
parameters.add("username", usernameObj);
parameters.add("password", passwordObj);
MyReturnObj ret = rt.postForObject(endpoint, parameters, MyRequestObj.class);
J'ai aussi un enregistrement à l'intercepteur donc je peut corriger les paramètres d'entrée et ils sont presque correct! Actuellement, la usernameObj
et passwordObj
paramètres apparaissent en tant que tels:
{"username":[{"testuser"}],"password":[{"testpassword"}]}
Ce que je voulez qu'ils ressemblent est la suivante:
username={"testuser"},password={"testpassword"}
Supposer que usernameObj
et passwordObj
sont des objets Java qui ont été placés en JSON.
Ce que je fais mal?
OriginalL'auteur Matt Crysler | 2014-07-31
Vous devez vous connecter pour publier un commentaire.
Bon, j'ai fini par trouver, pour la plupart. J'ai fini par écrire un marshaller/unmarshaller afin que je puisse le traiter à un beaucoup plus fine. C'était ma solution:
Cette solution m'a permis de contrôler la façon dont l'objet est rassemblée/unmarshalled et affiche simplement des chaînes au lieu de permettre au Ressort de la poignée de l'objet directement. Ses aidé énormément!
Il vaut mieux mettre unmarshalResponse code ici et de compléter votre réponse!
OriginalL'auteur Matt Crysler
Pour Le Côté Client
De passer l'objet en tant que chaîne json, utilisez
MappingJackson2HttpMessageConverter
.Pour le Côté Serveur configuration spring
OriginalL'auteur Zaw Than oo