1

我有一个 REST 服务器作为后端,它提供了一组服务,而且它使用 基本的身份验证方法进行访问。

现在我需要创建一个 GWT 前端,因此,我需要从 GWT 前端对 REST 后端执行 http 调用

经过一番研究,我发现 HttpBuilder 可以处理对后端的 http 请求,但是在尝试执行跨站点请求时似乎很痛苦,而且它带有一些与 Safari 浏览器相关的限制。

然后我找到了这篇https://developers.google.com/web-toolkit/doc/latest/tutorial/Xsite文章,其中讨论了“您自己的服务器上的代理”,所以它看起来是我正在寻找的解决方案对于,但我没有找到更多的信息,或者一个例子。它说我可以创建服务器端代码来从远程服务器(后端)下载数据,所以,我应该在服务器端代码上创建一个像 apache 客户端这样的http 客户端,并实现一组使用它来制作的服务吗?向后端请求?如果是,如何处理用户身份验证和会话?如果没有,请给我一盏灯。

谢谢

4

1 回答 1

1
   it seem to be a pain when trying to perform cross-site requests,  

实际上,如果我们可以在 Servlet 响应标头中设置,您可以从 GWT RequestBuilder 发出跨站点请求

Response.setHeader("Access-Control-Allow-Origin"," http://yourrestserviceur.com/url ");

should I create a http client like the apache client on server-side code, and implement 
a set of services that use it to make request to the backend?

不,这不是必需的。利用RequestBuilder

RequestBuilder 示例:

     RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

        try {
          Request request = builder.sendRequest(null, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
              displayError("Couldn't retrieve JSON");
            }

            public void onResponseReceived(Request request, Response response) {
              if (200 == response.getStatusCode()) {
                updateTable(asArrayOfStockData(response.getText()));
              } else {
                displayError("Couldn't retrieve JSON (" + response.getStatusText()
                    + ")");
              }
            }
          });
        } catch (RequestException e) {
          displayError("Couldn't retrieve JSON");
    }
于 2013-03-12T14:37:31.590 回答