J'utilise Ubuntu et j'ai installé cURL sur elle. Je veux tester mon application Spring REST avec cURL. J'ai écrit mon code POST du côté Java. Cependant, je veux le tester avec cURL. J'essaie de poster une donnée JSON. L'exemple de données est le suivant :
{"value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true}
J'utilise cette commande :
curl -i \
-H "Accept: application/json" \
-H "X-HTTP-Method-Override: PUT" \
-X POST -d "value":"30","type":"Tip 3","targetModule":"Target 3","configurationGroup":null,"name":"Configuration Deneme 3","description":null,"identity":"Configuration Deneme 3","version":0,"systemId":3,"active":true \
http://localhost:8080/xx/xxx/xxxx
Il renvoie cette erreur :
HTTP/1.1 415 Unsupported Media Type
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1051
Date: Wed, 24 Aug 2011 08:50:17 GMT
La description de l'erreur est la suivante :
Le serveur a refusé cette demande car l'entité de la demande est dans un format non pris en charge par la ressource demandée pour la méthode demandée ().
Journal de Tomcat : "POST /ui/webapp/conf/clear HTTP/1.1" 415 1051
Quel est le bon format de la commande cURL ?
Voici mon côté Java PUT
(J'ai testé GET et DELETE et ils fonctionnent) :
@RequestMapping(method = RequestMethod.PUT)
public Configuration updateConfiguration(HttpServletResponse response, @RequestBody Configuration configuration) { //consider @Valid tag
configuration.setName("PUT worked");
//todo If error occurs response.sendError(HttpServletResponse.SC_NOT_FOUND);
return configuration;
}
7 votes
Vérifier le lien pour les demandes de poste de Spring 3.2.0.
14 votes
Il y a un bon article Utilisation de Curl pour les tests ad hoc des microservices RESTful qui couvre ce sujet avec de multiples exemples.
1 votes
Aidez-moi sur ce point stackoverflow.com/questions/65359210/