Example usage for com.google.gwt.http.client RequestBuilder sendRequest

List of usage examples for com.google.gwt.http.client RequestBuilder sendRequest

Introduction

In this page you can find the example usage for com.google.gwt.http.client RequestBuilder sendRequest.

Prototype

public Request sendRequest(String requestData, RequestCallback callback) throws RequestException 

Source Link

Document

Sends an HTTP request based on the current builder configuration with the specified data and callback.

Usage

From source file:com.calclab.emite.core.client.services.gwt.GWTConnector.java

License:Open Source License

public static void send(final String httpBase, final String request, final ConnectorCallback listener,
        final int timeoutMillis) throws ConnectorException {
    final RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, httpBase);
    builder.setHeader("Content-Type", "text/xml; charset=utf-8");
    builder.setHeader("Cache-Control", "no-cache");
    builder.setHeader("Pragma", "no-cache");

    if (timeoutMillis > 0) {
        builder.setTimeoutMillis(timeoutMillis);
    }//  w w  w.j a v  a  2  s .  c  o  m

    // TODO : Hard coded timeout to 6s, but we should set it to the wait + a
    // delta
    // builder.setTimeoutMillis(6000);
    try {
        final Request req = builder.sendRequest(request, new RequestCallback() {
            @Override
            public void onError(final Request req, final Throwable throwable) {
                logger.severe("GWT CONNECTOR ERROR: " + throwable.getMessage());
                activeRequests.remove(req);
                listener.onError(request, throwable);
            }

            @Override
            public void onResponseReceived(final Request req, final Response res) {
                activeRequests.remove(req);
                listener.onResponseReceived(res.getStatusCode(), res.getText(), request);
            }
        });

        activeRequests.add(req);
    } catch (final RequestException e) {
        throw new ConnectorException(e.getMessage());
    } catch (final Exception e) {
        logger.severe("Some GWT connector exception: " + e.getMessage());
        throw new ConnectorException(e.getMessage());
    }
}

From source file:com.data2semantics.yasgui.client.helpers.AppcacheHelper.java

License:Open Source License

public void getAppcacheSize() {
    String url = GWT.getModuleBaseURL() + "manifest.appcache?count";
    if (JsMethods.isDevPageLoaded())
        url += "&type=dev";
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
    try {//w  ww  .j a v  a 2  s . c  om
        builder.sendRequest(null, new RequestCallback() {
            public void onError(Request request, Throwable e) {
                view.getLogger().severe("Unable to fetch appcache count (does browser support appcache??)");
            }

            @Override
            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                    setAppcacheSize(response.getText());
                } else {
                    view.getLogger().severe("Unable to fetch appcache count (does browser support appcache??)");
                }

            }
        });
    } catch (RequestException e) {
        //couldnt connect to server
        view.getLogger().severe("Unable to fetch appcache count (does browser support appcache??)");
    }
}

From source file:com.data2semantics.yasgui.client.helpers.SparqlQuery.java

License:Open Source License

public void doRequest() {
    if (!view.getConnHelper().isOnline() && !JsMethods.corsEnabled(endpoint)) {
        //cors disabled and not online: problem!
        String errorMsg = "YASGUI is current not connected to the YASGUI server. "
                + "This mean you can only access endpoints on your own computer (e.g. localhost), which are <a href=\"http://enable-cors.org/\" target=\"_blank\">CORS enabled</a>.<br>"
                + "The endpoint you try to access is either not running on your computer, or not CORS-enabled.<br>"
                + corsNotification;//from  w  w  w. j a v  a2  s  .co  m
        view.getErrorHelper().onQueryError(errorMsg, endpoint, queryString, customQueryArgs);
        return;
    }

    view.getElements().onQueryStart();
    RequestBuilder builder;
    HashMultimap<String, String> queryArgs = customQueryArgs;
    RequestBuilder.Method requestMethod = queryRequestMethod;
    queryArgs.put("query", queryString);
    if (JsMethods.corsEnabled(endpoint)) {
        String params = Helper.getParamsAsString(queryArgs);
        String url = endpoint;
        if (queryRequestMethod == RequestBuilder.GET) {
            url += "?" + params;
        }
        builder = new RequestBuilder(queryRequestMethod, url);
        if (queryRequestMethod == RequestBuilder.POST) {
            builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
            builder.setRequestData(params);
        }
    } else {
        requestMethod = RequestBuilder.POST;
        queryArgs.put("endpoint", endpoint);
        queryArgs.put("requestMethod", (queryRequestMethod == RequestBuilder.POST ? "POST" : "GET"));
        builder = new RequestBuilder(RequestBuilder.POST, GWT.getModuleBaseURL() + "sparql"); //send via proxy
        builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
    }
    builder.setHeader("Accept", acceptHeader);
    try {
        final long startTime = System.currentTimeMillis();
        builder.sendRequest((requestMethod == RequestBuilder.POST ? Helper.getParamsAsString(queryArgs) : null),
                new RequestCallback() {
                    public void onError(Request request, Throwable e) {
                        //e.g. a timeout
                        queryErrorHandler(e);
                    }

                    @Override
                    public void onResponseReceived(Request request, Response response) {
                        view.getElements().onQueryFinish();
                        if (!response.getStatusText().equals("Abort")) {
                            //if user cancels query, textStatus will be 'abort'. No need to show error window then
                            if (response.getStatusCode() >= 200 && response.getStatusCode() < 300) {
                                if (view.getSettings().useGoogleAnalytics()) {
                                    long stopTime = System.currentTimeMillis();
                                    GoogleAnalytics.trackEvent(new GoogleAnalyticsEvent(endpoint,
                                            JsMethods.getUncommentedSparql(queryString),
                                            Integer.toString((int) (stopTime - startTime)),
                                            (int) (stopTime - startTime)));
                                }
                                drawResults(response.getText(), response.getHeader("Content-Type"));
                            } else {
                                queryErrorHandler(response);

                            }
                        }

                    }
                });
    } catch (RequestException e) {
        queryErrorHandler(e);
    }
}

From source file:com.dawg6.gwt.client.service.ServiceUtil.java

License:Open Source License

public void versionCheck(final Handler<VersionCheck> handler) {
    Scheduler.get().scheduleDeferred(new Command() {

        @Override//from  www .j  a  va 2 s .c o m
        public void execute() {
            RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
                    GWT.getHostPageBaseURL() + versionServletUri);

            //            GWT.log("Version URL = " + builder.getUrl());

            final VersionCheck result = new VersionCheck();

            try {
                builder.sendRequest(null, new RequestCallback() {

                    @Override
                    public void onResponseReceived(Request request, Response response) {

                        String text = response.getText();

                        if (text != null) {
                            if (text.startsWith(VersionBuilder.PREFIX)) {

                                result.serverVersion = text.substring(VersionBuilder.PREFIX.length());

                                if (text.startsWith(CLIENT_VERSION.getPrefixString())) {
                                    result.success = true;
                                }

                            }
                        }

                        if ((!result.success) && (result.serverVersion == null)) {
                            result.exception = "Unable to obtain Server version.";
                        }

                        if (handler != null)
                            handler.handleResult(result);
                    }

                    @Override
                    public void onError(Request request, Throwable exception) {
                        result.success = false;
                        result.exception = "Error communicating with server.";

                        if (handler != null)
                            handler.handleResult(result);
                    }
                });

            } catch (Exception e) {
                result.success = false;
                result.exception = "Error communicating with server.";

                if (handler != null)
                    handler.handleResult(result);
            }
        }
    });

}

From source file:com.dawg6.web.dhcalc.client.Service.java

License:Open Source License

public void versionCheck(final Handler<VersionCheck> handler) {
    Scheduler.get().scheduleDeferred(new Command() {

        @Override/*from   w w  w. jav  a2s . c  o m*/
        public void execute() {
            RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
                    GWT.getHostPageBaseURL() + "version?v2");

            final VersionCheck result = new VersionCheck();

            try {
                builder.sendRequest(null, new RequestCallback() {

                    @Override
                    public void onResponseReceived(Request request, Response response) {

                        String text = response.getText();

                        if (text != null) {
                            if (text.startsWith(Version.PREFIX)) {

                                result.serverVersion = text.substring(Version.PREFIX.length());

                                if (text.startsWith(Version.getVersion().getPrefixString())) {
                                    result.success = true;
                                }

                            }
                        }

                        if ((!result.success) && (result.serverVersion == null)) {
                            result.exception = "Unable to obtain Server version.";
                        }

                        if (handler != null)
                            handler.handleResult(result);
                    }

                    @Override
                    public void onError(Request request, Throwable exception) {
                        result.success = false;
                        result.exception = "Error communicating with server.";

                        if (handler != null)
                            handler.handleResult(result);
                    }
                });

            } catch (Exception e) {
                result.success = false;
                result.exception = "Error communicating with server.";

                if (handler != null)
                    handler.handleResult(result);
            }
        }
    });

}

From source file:com.epam.feel.client.ui.util.gwtupload.FixedUploader.java

License:Apache License

public void update() {
    try {/*from  ww  w  . j a v a2  s  . co m*/
        if (waitingForResponse) {
            return;
        }
        waitingForResponse = true;
        // Using a reusable builder makes IE fail because it caches the response
        // So it's better to change the request path sending an additional random parameter
        RequestBuilder reqBuilder = new RequestBuilder(RequestBuilder.GET,
                composeURL("filename=" + fileInput.getName(), "c=" + requestsCounter++));
        reqBuilder.setTimeoutMillis(DEFAULT_AJAX_TIMEOUT);
        reqBuilder.sendRequest("get_status", onStatusReceivedCallback);
    } catch (RequestException e) {
        e.printStackTrace();
    }
}

From source file:com.epam.feel.client.ui.util.gwtupload.FixedUploader.java

License:Apache License

private void sendAjaxRequestToCancelCurrentUpload() throws RequestException {
    RequestBuilder reqBuilder = new RequestBuilder(RequestBuilder.GET, composeURL("cancel=true"));
    reqBuilder.sendRequest("cancel_upload", onCancelReceivedCallback);
}

From source file:com.epam.feel.client.ui.util.gwtupload.FixedUploader.java

License:Apache License

private void sendAjaxRequestToDeleteUploadedFile() throws RequestException {
    RequestBuilder reqBuilder = new RequestBuilder(RequestBuilder.GET, composeURL("remove=" + getInputName()));
    reqBuilder.sendRequest("remove_file", onDeleteFileCallback);
}

From source file:com.epam.feel.client.ui.util.gwtupload.FixedUploader.java

License:Apache License

/**
 * Sends a request to the server in order to get the blobstore path. When the response with the session comes, it
 * submits the form./*w  w  w  .  j  a va  2  s .  c o  m*/
 */
private void sendAjaxRequestToGetBlobstorePath() throws RequestException {
    RequestBuilder reqBuilder = new RequestBuilder(RequestBuilder.GET, getServletPath());// composeURL("blobstore=true"));
    reqBuilder.setTimeoutMillis(DEFAULT_AJAX_TIMEOUT);
    reqBuilder.sendRequest("blobstore", onBlobstoreReceivedCallback);
}

From source file:com.epam.feel.client.ui.util.gwtupload.FixedUploader.java

License:Apache License

/**
 * Sends a request to the server in order to get the session cookie, when the response with the session comes, it
 * submits the form. This is needed because this client application usually is part of static files, and the server
 * doesn't set the session until dynamic pages are requested. If we submit the form without a session, the server
 * creates a new one and send a cookie in the response, but the response with the cookie comes to the client at the
 * end of the request, and in the meanwhile the client needs to know the session in order to ask the server for the
 * upload status.//ww w  .j a  va  2 s .c o  m
 */
private void sendAjaxRequestToValidateSession() throws RequestException {
    // Using a reusable builder makes IE fail
    RequestBuilder reqBuilder = new RequestBuilder(RequestBuilder.GET, composeURL("new_session=true"));
    reqBuilder.setTimeoutMillis(DEFAULT_AJAX_TIMEOUT);
    reqBuilder.sendRequest("create_session", onSessionReceivedCallback);
}