RestTemplate requête POST RequestParams et RequestBody
J'ai un serveur et un client. Je suis à l'aide de Printemps à la carte les requêtes http sur le serveur et RestTemplate à faire des requêtes au serveur.
Serveur de code ressemble à ceci:
@RequestMapping (value="/someEndPoint", method = RequestMethod.POST)
@ResponseBody
public String configureSettings(
@RequestParam(required=false) Integer param1,
@RequestParam(required=false) Long param2,
@RequestBody String body)
{
if(param1 != null)
//do something
if(body not empty or null)
//do something
}
Côté Client:
String postUrl = "http://myhost:8080/someEndPoint?param1=val1"
restTemplate.postForLocation(postUrl, null);
Cela fonctionne en ce que la bonne action est déclenchée sur le côté serveur de param1
cependant, le corps de la requête contient également:
param1=val1
Le corps de la requête lorsqu'il est défini, il sera json donc tout ce que je veux, c'est être en mesure de définir d'autres paramètres sans réglage de l'organisme.
Je sais que je suis en utilisant le restTemplate incorrecte de sorte que toute aide serait grandement appréciée.
Vous devez vous connecter pour publier un commentaire.
Vous faites un
HTTP POST
, mais vous n'êtes pas fournir un objet de mettrePOST
ed. Le printempsRestTemplate
est à essayer de comprendre ce que vous voulezPOST
, de sorte qu'il regarde et voit que la chaîne de requête de l'url a quelque chose, donc il essaie de l'utiliser.Ne pas ajouter une chaîne de requête à un
POST
, il suffit de fournir l'objet que vous souhaitezPOST
.Le livre
Printemps en Action (3e édition)
couvreRestTemplate
(et RESTE en général) assez bien. Je recommande de prendre un coup d'oeil.