如何从GWT调用RESTFUL服务?
我使用GWT作为Web开发框架。我需要从 GWT 客户端代码访问一些 REST 服务。此外,我需要解析JSON(或者XML),这是这些服务的响应格式。解决这个问题的最佳方法是什么?
提前致谢。
我使用GWT作为Web开发框架。我需要从 GWT 客户端代码访问一些 REST 服务。此外,我需要解析JSON(或者XML),这是这些服务的响应格式。解决这个问题的最佳方法是什么?
提前致谢。
您可以使用标准的 GWT RequestBuilder
(如果需要调用另一个域上的服务,则可以调用 JsonpRequestBuilder
)来调用 REST 服务。
使用 JSON 响应字符串,您可以调用以获取 、,它可以是 、 等。这一切都在此软件包中可用。JSONParser.parseStrict(jsonString)
JSONValue
JSONObject
JSONArray
您可以通过创建代理服务接口,在 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。