La bonne façon de METTRE un objet JSON pour un séjour Reposant serveur
J'ai du mal à correctement formatage de ma demande PUT pour obtenir mon serveur de reconnaître mon application client de la commande PUT.
Voici ma section de code qui met une chaîne JSON pour le serveur.
try {
URI uri = new URI("the server address goes here");
URL url = uri.toURL();
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
out.write(gson.toJson(newClient));
out.close();
} catch (Exception e) {
Logger.getLogger(CATHomeMain.class.getName()).log(Level.SEVERE, null, e);
}
et voici le code qui est censé attraper la commande PUT
@PUT
@Consumes("text/plain")
public void postAddClient(String content, @PathParam("var1") String var1, @PathParam("var2") String var2) {
Ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
Vous devez également indiquer le côté client qu'il est en train de faire un PUT de JSON. Sinon, il va essayer de POSTER quelque chose de type inconnu (le détail de journaux de serveur peut l'enregistrer avec l'échec), ce qui n'est pas du tout ce que vous voulez. (À l'Exception de la manipulation omis).
Sur le côté serveur, vous voulez que, pour déclarer qu'il
@Consumes("application/json")
bien sûr, et vous voulez probablement la méthode pour renvoyer une représentation de la raison ou de redirection (voir cette SORTE de question pour une discussion de ces problèmes) donc le résultat de votre méthode ne devrait pas êtrevoid
, mais plutôt un type de valeur ou un JAX-RSResponse
(qui c'est comment faire la redirection).Probablement le type MIME. Essayez "application/json".