如何从GWT调用RESTFUL服务?

ovu*_*tin 24 java rest gwt

我正在使用GWT作为Web开发框架.我需要从GWT客户端代码访问一些REST服务.此外,我需要解析JSON(或XML),这是这些服务的响应格式.哪个是解决这个问题的最佳方法?

提前致谢.

Jas*_*all 17

您可以使用标准GWT调用REST服务RequestBuilder(或者JsonpRequestBuilder如果需要在另一个域上调用服务).

随着JSON响应字符串,你可以调用JSONParser.parseStrict(jsonString)获得JSONValue,它可以是一个JSONObject,JSONArray等等,这是在所有可用的这个包.


Sae*_*fam 8

您可以通过创建代理服务接口,在GWT应用程序中使用RestyGWT轻松调用Restful Web服务:

import javax.ws.rs.POST;
...
public interface PizzaService extends RestService {
    @POST
    public void order(PizzaOrder request, 
                      MethodCallback<OrderConfirmation> callback);
}
Run Code Online (Sandbox Code Playgroud)

或者当您不想经历创建服务接口的麻烦时:

Resource resource = new Resource( GWT.getModuleBaseURL() + "pizza-service");

JSONValue request = ...

resource.post().json(request).send(new JsonCallback() {
    public void onSuccess(Method method, JSONValue response) {
        System.out.println(response);
    }
    public void onFailure(Method method, Throwable exception) {
        Window.alert("Error: "+exception);
    }
});
Run Code Online (Sandbox Code Playgroud)

它还有一个很好的API,用于编码和解码Java Object到JSON.