我在尝试使用阿拉伯语 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 中的 webservice 测试器或任何其他 webservice 使用 post 方法只需将content-type=application/json
andauthorization = Basic YWRtaW46YWRtaW4=
作为请求标头插入,但在请求正文中插入 json。post 方法将返回带有阿拉伯字符的按摩“????”
请告诉我我缺少什么,并感谢您的帮助。