2012-03-02 145 views
4

新玩!一般來說,框架和Web開發,我試圖做一個簡單的REST GET到一個Web服務,並得到一些直接的JSON作爲迴應。將URL輸入到瀏覽器中,我得到了一個完美的響應,並帶有格式良好的JSON。通過代碼調用它,它只是炸燬:無法從GET請求獲取JSON

WS.WSRequest wsRequest = WS.url(serviceURL); 
    wsRequest.timeout(timeoutTime); 
    wsRequest.setHeader("Accept", "application/json"); 
    wsRequest.headers.put("Content-type","application/json"); 
    wsRequest.mimeType = "application/json"; 

    WS.HttpResponse response = wsRequest.get(); 
    String graphServiceResponse = response.getJson().toString(); 

執行一切正常,直到它拋出一個異常,並出現了錯誤的最後一行。我知道我有什麼看起來像很多冗餘代碼;那些是我的嘗試來解決它。就像我說的,在瀏覽器中輸入「serviceURL」,它可以正常工作。

任何人都知道我在做什麼錯了?提前致謝!

+2

它會拋出什麼異常? – Thomas 2012-03-02 20:21:08

+0

不確定(無法調試代碼),但它返回HTTP 500響應。 – Frecklefoot 2012-03-02 22:43:18

+1

我真的解決了這個問題,但系統不會讓我在幾個小時內發佈我自己的答案。將盡快更新! – Frecklefoot 2012-03-02 22:47:12

回答

0

好的,解決了這個問題。只是省略了所有的設置等等,增加了認證,並且完美運行。奇怪的。

String stringResponse = ""; 
    try { 
     // execute GET to graph service 
     WS.WSRequest wsRequest = WS.url(serviceURL).authenticate(USERNAME, PASSWORD); 
     WS.HttpResponse response = wsRequest.get(); 
     stringResponse = response.getString(); 

     ... more cool stuff ... 

感謝您的期待!

0

我嘗試過,發現下面的代碼工作。 10000是以ms爲單位的超時參數。

String baseUrl = "your url"; 

    F.Promise<WSResponse> response = ws.url(baseUrl) 
      .setQueryParameter(param, value) 
      .get(); 

    return response.get(10000).asJson().toString();