我在尝试使用阿拉伯语json消息时遇到了编码问题,但是当在get方法中生成json时,我在这里得到的消息是代码:
@Path("/json")
public class HelloJson {
@GET
@Path("/get")
@Produces("application/json; charset=UTF-8")
public Track getTrackInJSON() {
Track track = new Track();
track.setTitle("الليله");
track.setSinger("عمرو دياب");
return track;
}
@POST
@Path("/post")
@Consumes("application/json; charset=UTF-8")
public Response createTrackInJSON(Track track) throws UnsupportedEncodingException{
String result = new String (("Track saved : " + track).getBytes(), "UTF-8");
System.out.println(result);
return Response.status(201).entity(result).type("text/plain; charset=UTF-8").build();
}
}
您可以通过以下链接尝试此网络服务: http://java7learning-khalidspace.rhcloud.com/rest/json/get 如果要求进行身份验证,请使用用户名admin和密码admin
此链接将返回一个带有阿拉伯语值的json,没有任何编码问题。
现在使用以下链接获取此json消息并在post方法中使用它:
http://java7learning-khalidspace.rhcloud.com/rest/json/post
您可以使用来自eclipse或任何其他Web服务的webservice测试人员的post方法,只需将content-type=application/json
和authorization = Basic YWRtaW46YWRtaW4=
作为请求标题插入,而将json插入请求正文中。
post方法将返回按摩,阿拉伯字符为“????”
请告诉我我缺少的东西并感谢您的帮助。
答案 0 :(得分:0)
您是否已尝试使用转义字符发送它们?:
{
"title" : "\u0627\u0644\u0644\u064A\u0644\u0647",
"singer" : "\u0639\u0645\u0631\u0648 \u062F\u064A\u0627\u0628"
}
我使用SoapUI和您的http://java7learning-khalidspace.rhcloud.com/rest/application.wadl:
这样做Track saved : Track [title=الليله, singer=عمرو دياب]