如何从GWT调用RESTFUL服务?

2022-09-01 20:57:06

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

提前致谢。


答案 1

您可以使用标准的 GWT RequestBuilder(如果需要调用另一个域上的服务,则可以调用 JsonpRequestBuilder)来调用 REST 服务。

使用 JSON 响应字符串,您可以调用以获取 、,它可以是 、 等。这一切都在此软件包中可用。JSONParser.parseStrict(jsonString)JSONValueJSONObjectJSONArray


答案 2

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

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

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

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

它还有很好的API,用于将Java Object编码和解码为JSON。