2012-03-02 144 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();