【问题标题】:Get HTTP Response before Async call in gwt在 gwt 中的异步调用之前获取 HTTP 响应
【发布时间】:2016-12-05 04:49:42
【问题描述】:

我想在 Async 方法调用之前获取 gwt 中 URL 的 Http Response

以下是我的工作代码,但我想在异步调用之前执行它。

  RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, "http://localhost:8080");
    try {
        builder.sendRequest(null, new RequestCallback() {
            @Override
            public void onResponseReceived(Request request, Response response) {

            }

            @Override
            public void onError(Request request, Throwable exception) {
                throw new UnsupportedOperationException("Not supported yet."); 
            }
        });
    } catch (RequestException ex) {

    }
    return response.getStatusCode();

另外请注意,我在我的项目中使用 JavaScript。有什么方法可以在 javaScript 中编写此代码并在我的 OnModuleLoad 方法中检索 response 吗?

任何建议都将受到高度赞赏。

【问题讨论】:

  • 您可以使用 javascript/jquery 承诺。 Javascript 承诺:developer.mozilla.org/en/docs/Web/JavaScript/Reference/… Jquery 承诺:api.jquery.com/promise
  • 但是即使在调用RequestCallback(asyc)之前访问(get)getStatusCode值,该值也将无关紧要,可能是原始类型的默认值。您应该等到收到实际响应或失败,并且由于 javascript 是单线程的,您不能阻塞等待,您只能使用回调等待。但是,正如@MaheshGosemath 所说,您可以将异步包装器用作PromiseObservable
  • 我是从客户端调用 api。但我必须将其验证到服务器端。所以我制作了 servlet 并从 javascript 验证它。解决了:-)

标签: javascript java http gwt


【解决方案1】:

我用 async : false 在 javascript 中制作了简单的函数。然后我点击 url 并得到响应。

此响应将使用本机方法在 onModuleLoad 中获取。同步通话。

解决了:-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2017-09-28
    • 2019-09-30
    • 2020-08-01
    相关资源
    最近更新 更多