2011-12-22 49 views
1

我正在開發一些Facebook OAuth 2.0代碼來修復當前插件。我已完成99%,但是當我將代碼部署到Linux時,它不起作用(在Windows上開發)。Grails:JSON.parse()在Linux上的錯誤 - 在Windows上工作 - 難倒

我得到的錯誤是:
這個錯誤之前 Exception Message: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"} Caused by: Expected a ',' or '}' at character 277 of {"algorithm":"HMAC-SHA256","code":"AQDZPCNUY2VHnN1R340mArRUggpP1393V9E0VeL-fJbp0VdRBOzR5S5sHQB5ysdhfX8BrPP0u43EVi5OBx5MnrbxROJsuwMrqHmEDRa2pFm-GQ-2_R1blo_uBgOoKFG_Gm0TvtiKhzR1LwV8KNJlAgfCikuzx-zCxDmUz4t6b6xWbvrLPBMYZaLzdy5te3lYGqk","issued_at":1324533514,"user_id":"123144996"}

權。我得到了同樣的信息沒有結束} 當我實際使用,如下面的代碼破解:

if (!jsonData.trim().endsWith("}")) { 
    jsonData = jsonData + "}" 
} 

我不知道如何代碼可以在Windows的工作方式不同比Linux。尋找想法。不確定它是否是編碼?新的URL()。text? decodeBase64代碼?思考?

String[] signedRequestParts = signedRequest.split('\\.') 
    // signedRequest gets deconstructed into a JSON packet 
    String jsonData = new String(Base64.decodeBase64(signedRequestParts[1].getBytes()), 'UTF-8') 
    // attempt at temporary hack fix  
    if (!jsonData.trim().endsWith("}")) { 
     jsonData = jsonData + "}" 
    } 

    def json = JSON.parse(jsonData) // I get that error on this line 
    def fbToken 
    if (json.code) { 
     def u = 'https://graph.facebook.com/oauth/access_token' + 
       '?client_id=' + applicationId + '&client_secret=' + secret + 
       '&redirect_uri=' + '&code=' + json.code 
     def content = new URL(u).text 
     fbToken = content.split("&")[0].split("=")[1]; 
    } 
+0

其次,問題是Base64.decodeBase64缺少最後一個字符}。 – MJLefevre 2011-12-22 14:46:03

回答

0

java.lang.String.getBytes()還需要一個字符集。你有沒有試過getBytes(「UTF-8」)

+0

你向右滾動了嗎? – MJLefevre 2011-12-22 14:33:08

+0

是的,你的'UTF-8'被傳遞給_new String()_而不是_.getBytes()_。 – 2011-12-22 14:47:58

+0

無論如何,Base64編碼的字符串只包含ASCII字符 – 2011-12-22 14:51:57

相關問題