2013-09-23 38 views
0

試圖消耗阿拉伯語JSON消息時,但是在生產get方法我得到的消息就在這裏JSON當我有一個編碼的問題是代碼:錯誤的編碼POST方法

@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(); 
} 

} 
如果要求進行身份驗證使用用戶名admin和密碼admin

這個鏈接將返回你用阿拉伯數字值的JSON不進行任何編碼問題 http://java7learning-khalidspace.rhcloud.com/rest/json/get

你可以嘗試以下鏈接此WebService。 現在採取這種JSON消息,並使用下列鏈接使用它的POST方法: http://java7learning-khalidspace.rhcloud.com/rest/json/post 你可以使用POST方法使用從Eclipse或任何其他Web服務的Web服務測試器只需插入content-type=application/jsonauthorization = Basic YWRtaW46YWRtaW4=的請求頭和但JSON在請求主體中。 post方法將返回一個帶有阿拉伯字符的按摩作爲「????」

請告訴我我失蹤並感謝您的幫助。

回答

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=عمرو دياب] 
+0

非常感謝您的回答是有益的,但我可以將這些轉義字符組成用戶輸入嗎?這個Web服務應該可以從一個前端應用程序訪問,最有可能是一個Android應用程序,所以我如何從用戶那裏獲取輸入並生成它的轉義字符。 –