Reputation: 293
I am sending a POST JSON Request to my 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": "関連当"
}
}
My CXF JAXRS Consumer is defined as below.
@POST
@Produces("application/json; charset=UTF-8")
@Consumes("application/json; charset=UTF-8")
public Response testCharSet(@Encoded String jsonBody);
But the Japanese Character (関連当) that I sent as POST request is not encoded and results in some junk characters "é¢é£å½äºè"
Using SoapUI results in "?????" characters.
This Junk characters differs from client to client from where I hit the request. How Could I encode my POST Request ?
Upvotes: 21
Views: 168555
Reputation: 949
A hack is to make use of the Pre-request Script in Postman.
Paste the following in the Pre-request Script section. This will transform all our params in the Request Url to be encoded.
Thus all the +
sign would be encoded to %2B
var querycount = pm.request.url.query.count();
for(let i = 0; i < querycount; i++) {
pm.request.url.query.idx(i).value = encodeURIComponent(pm.request.url.query.idx(i).value);
}
Upvotes: 0
Reputation: 844
I think you need to use json_encode()
options like this line
json_encode($data,JSON_UNESCAPED_UNICODE);
Postman returns the message in your language format.
Upvotes: 2
Reputation: 23
I had a similar problem and solved it bu setting HttpServletResponse instance's character encoding to utf-8 :
response.setCharacterEncoding("utf-8");
Upvotes: 1
Reputation: 713
Try this
@RequestMapping(value = "/play", method = RequestMethod.POST, produces={"application/json; charset=UTF-8"})
Set produces={"application/json; charset=UTF-8"}
as above, to your @RequestMapping
Upvotes: 1
Reputation: 6320
None of the answers here worked for me.
My content-type was already set to "application/json;charset=UTF-8", but the accept-encoding
setting in my header was causing the error:
accept-encoding
setting under Headers:When I deactivated the last line above, everything worked great! Hope that helps someone.
Upvotes: 10
Reputation: 291
Set the content-type to:
"application/json;charset=UTF-8"
when sending the post request in the application you are using. You can find "content-type" in the Header of the URL in that application.
Upvotes: 29