J'envoie une POST JSON Request à mon application.
POST /CharSetTest/Test HTTP/1.1
Host: localhost:8090
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 1637b92b-5896-4765-63c5-d04ad73ea9f1
{
"SampleRequest": {
"FullName": "関連当"
}
}
Mon consommateur CXF JAXRS est défini comme ci-dessous.
@POST
@Produces("application/json; charset=UTF-8")
@Consumes("application/json; charset=UTF-8")
public Response testCharSet(@Encoded String jsonBody);
Mais le caractère japonais (関 連 当) que j'ai envoyé en tant que POST n'est pas codé et entraîne des caractères indésirables "é ¢ é £ å½äºè"
L'utilisation de SoapUI donne "?????" personnages.
Ce caractère indésirable diffère d'un client à l'autre d'où j'ai frappé la demande. Comment pourrais-je encoder ma POST demande?
Définissez le type de contenu sur:
"application/json;charset=UTF-8"
lors de l'envoi de la demande de publication dans l'application que vous utilisez. Vous pouvez trouver "content-type" dans l'en-tête de l'URL de cette application.
Aucune des réponses ici n'a fonctionné pour moi.
Mon type de contenu était déjà défini sur "application/json; charset = UTF-8", mais le accept-encoding
le réglage dans mon en-tête était à l'origine de l'erreur:
accept-encoding
paramètre sous En-têtes:Lorsque j'ai désactivé la dernière ligne ci-dessus, tout a bien fonctionné! J'espère que cela aide quelqu'un.
Essaye ça
@RequestMapping(value = "/play", method = RequestMethod.POST, produces={"application/json; charset=UTF-8"})
Ensemble produces={"application/json; charset=UTF-8"}
comme ci-dessus, à votre @RequestMapping