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.google.gwt.sample.stockwatcher_json.client.StockWatcherJSON.java

private void refreshWatchList() {
    if (stocks.size() == 0) {
        return;/* w  ww. j  av  a 2s.com*/
    }

    String url = JSON_STOCK_PRICES_URL;

    // Append watch list stock symbols to query URL.
    Iterator<String> iter = stocks.iterator();
    while (iter.hasNext()) {
        url += iter.next();
        if (iter.hasNext()) {
            url += "+";
        }
    }

    url = URL.encode(url);
    GWT.log("url = " + url);
    // Send request to server and catch any errors.
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

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

            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 : " + e.getMessage());
    }
}

From source file:com.google.gwt.sample.userwatcher.client.PageWithoutPhoto.java

private void refreshWatchList() {

    if (stocks.size() == 0) {
        return;//from  ww  w  .  j  av a 2s.c  o m
    }

    String url = JSON_URL;

    // Append watch list stock symbols to query URL.
    Iterator<String> iter = stocks.iterator();
    while (iter.hasNext()) {
        url += iter.next();
        if (iter.hasNext()) {
            url += "+";
        }
    }

    url = URL.encode(url);

    // Send request to server and catch any errors.
    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(JsonUtils.<JsArray<StockData>>safeEval(response.getText()));
                } else {
                    displayError("Couldn't retrieve JSON (" + response.getStatusText() + ")");
                }
            }
        });
    } catch (RequestException e) {
        displayError("Couldn't retrieve JSON");
    }

}

From source file:com.google.gwt.sample.userwatcher.client.UploadImage.java

private void send() {
    cp.showLoading(true);/*from w w  w  .  j  ava  2 s  .  c  om*/

    String boundary = createBoundary();

    String requestData = getRequestData(boundary);

    //System.out.println(requestData);
    //url = "/TestOut/";

    //Window.alert("requestData=" + requestData);
    RootPanel.get().add(new HTML("<br>requestData=" + requestData));

    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
    builder.setHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
    builder.setHeader("Content-Length", Long.toString(requestData.length()));
    try {
        builder.sendRequest(requestData, new RequestCallback() {
            public void onResponseReceived(Request request, Response response) {
                cp.showLoading(false);
                if (response.getStatusCode() == 200) {
                    processResponse(response);
                }
            }

            public void onError(Request request, Throwable exception) {
                fireChange(EventManager.FILE_DONEUPLOADING);
                cp.showLoading(false);
                exception.printStackTrace();
            }
        });
    } catch (RequestException e) {
        cp.showLoading(false);
        e.printStackTrace();
    }
}

From source file:com.google.walkaround.wave.client.rpc.AjaxRpc.java

License:Open Source License

@Override
public RpcHandle makeRequest(Method method, String serviceName, ReadableStringMap<String> params,
        final Rpc.RpcCallback rpcCallback) {

    final int requestId = nextRequestId;
    nextRequestId++;/*ww  w  . j  ava2s .  com*/

    // See the javadoc for HARD_RELOAD.
    if (connectionState == ConnectionState.HARD_RELOAD) {
        return new Handle(requestId);
    }

    final String requestData;
    final RequestBuilder.Method httpMethod;

    StringBuilder urlBuilder = new StringBuilder(rpcRoot + "/" + serviceName + "?");
    // NOTE(danilatos): For some reason, IE6 seems not to perform some requests
    // it's already made, resulting in... no data. Inserting some
    // unique value into the request seems to fix that.
    if (UserAgent.isIE()) {
        urlBuilder.append("_no_cache=" + requestId + "" + Duration.currentTimeMillis() + "&");
    }

    if (method == Method.GET) {
        httpMethod = RequestBuilder.GET;
        addParams(urlBuilder, params);
        requestData = "";
    } else {
        httpMethod = RequestBuilder.POST;
        requestData = addParams(new StringBuilder(), params).toString();
    }

    final String url = urlBuilder.toString();

    RequestBuilder r = new RequestBuilder(httpMethod, url);
    if (method == Method.POST) {
        r.setHeader("Content-Type", "application/x-www-form-urlencoded");
        r.setHeader("X-Same-Domain", "true");
    }

    log.log(Level.INFO, "RPC Request, id=", requestId, " method=", httpMethod, " urlSize=", url.length(),
            " bodySize=", requestData.length());

    class RpcRequestCallback implements RequestCallback {
        @Override
        public void onResponseReceived(Request request, Response response) {
            RpcHandle handle = handles.get(requestId);
            if (handle == null) {
                // It's been dropped
                log.log(Level.INFO, "RPC SuccessDrop, id=", requestId);
                return;
            }

            // Clear it now, before callbacks
            removeHandle();

            int statusCode = response.getStatusCode();
            String data = response.getText();

            Result result;
            if (statusCode < 100) {
                result = Result.RETRYABLE_FAILURE;
                maybeSetConnectionState(ConnectionState.OFFLINE);
            } else if (statusCode == 200) {
                result = Result.OK;
                maybeSetConnectionState(ConnectionState.CONNECTED);
                consecutiveFailures = 0;
            } else if (statusCode >= 500) {
                result = Result.RETRYABLE_FAILURE;
                consecutiveFailures++;
                if (consecutiveFailures > MAX_CONSECUTIVE_FAILURES) {
                    maybeSetConnectionState(ConnectionState.OFFLINE);
                } else {
                    maybeSetConnectionState(ConnectionState.CONNECTED);
                }
            } else {
                result = Result.PERMANENT_FAILURE;
                maybeSetConnectionState(ConnectionState.SOFT_RELOAD);
            }

            switch (result) {
            case OK:
                log.log(Level.INFO, "RPC Success, id=", requestId);
                try {
                    rpcCallback.onSuccess(data);
                } catch (MessageException e) {
                    // Semi-HACK(danilatos): Treat parse errors as login problems
                    // due to loading a login or authorization page. (It's unlikely
                    // we'd otherwise get a parse error from a 200 OK result).
                    // The simpler solution of detecting redirects is not possible
                    // with XmlHttpRequest, the web is unfortunately broken.

                    // TODO(danilatos) Possible alternatives:
                    // either change our server side to not require
                    // login through web.xml but to check if UserService says currentUser==null (or
                    // whatever it does if not logged in) and return a well-defined "not logged in"
                    // response instead, or to prefix all responses from the server with a fixed string
                    // (like we do with "OK" elsewhere) and assume not logged in if that prefix is
                    // missing.  We could strip off that prefix here and make it transparent to the
                    // callbacks.

                    maybeSetConnectionState(ConnectionState.LOGGED_OUT);

                    error(new Exception("RPC failed due to message exception, treating as auth failure"
                            + ", status code: " + statusCode + ", data: " + data));
                }
                break;
            case RETRYABLE_FAILURE:
                error(new Exception("RPC failed, status code: " + statusCode + ", data: " + data));
                break;
            case PERMANENT_FAILURE:
                fatal(new Exception("RPC bad request, status code: " + statusCode + ", data: " + data));
                break;
            default:
                throw new AssertionError("Unknown result " + result);
            }
        }

        @Override
        public void onError(Request request, Throwable exception) {
            if (!handles.containsKey(requestId)) {
                log.log(Level.INFO, "RPC FailureDrop, id=", requestId, exception.getMessage());
                return;
            }
            removeHandle();
            error(exception);
        }

        private void fatal(Throwable e) {
            log.log(Level.WARNING, "RPC Bad Request, id=", requestId, e.getMessage(), "Request url:" + url, e);
            rpcCallback.onFatalError(e);
        }

        private void error(Throwable e) {
            log.log(Level.WARNING, "RPC Failure, id=", requestId, e.getMessage(), "Request url:" + url, e);
            rpcCallback.onConnectionError(e);
        }

        private void removeHandle() {
            handles.remove(requestId);
        }
    }

    RpcRequestCallback innerCallback = new RpcRequestCallback();

    try {
        // TODO: store the Request object somewhere so we can e.g. cancel it
        r.sendRequest(requestData, innerCallback);
        Handle handle = new Handle(requestId);
        handles.put(handle.getId(), handle);
        return handle;
    } catch (RequestException e) {
        // TODO(danilatos) Decide if this should be a badRequest.
        innerCallback.error(e);
        return null;
    }
}

From source file:com.googlesource.gerrit.plugins.xdocs.client.XDocApi.java

License:Apache License

public static void checkHtml(String url, final AsyncCallback<VoidResult> callback) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
    try {//from w w  w .  ja v a 2s. c o  m
        builder.sendRequest(null, new RequestCallback() {
            @Override
            public void onResponseReceived(Request request, Response response) {
                int status = response.getStatusCode();
                if (200 <= status && status < 300) {
                    callback.onSuccess(VoidResult.create());
                } else {
                    callback.onFailure(new RequestException(status + " " + response.getStatusText()));
                }
            }

            @Override
            public void onError(Request request, Throwable caught) {
                callback.onFailure(caught);
            }
        });
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

From source file:com.gwt.conn.client.Communicate.java

public static boolean hasInternet() {

    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
    builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
    //      builder.setHeader("Access-Control-Allow-Origin", "*");
    //      builder.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
    try {//from  w  ww.j av  a2  s .  c o m
        Request response = builder.sendRequest(null, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
            }

            public void onResponseReceived(Request request, Response response) {

            }
        });

    } catch (RequestException e) {
        return false;
    }

    return true;
}

From source file:com.gwt.conn.client.Communicate.java

public static String sync(String menuName, String restID, final boolean authenticating) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url + "menu/update");
    builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
    //      builder.setHeader("Access-Control-Allow-Origin", "*");
    //      builder.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
    try {/*from  w w w .j ava  2 s. com*/
        String doc = StorageContainer.getMenu(menuName);

        String timestamp = new Date().getTime() + "";
        String secret_key = ""; // TODO get secret key from storage
        String message = doc + secret_key + timestamp;
        String hash = "";
        hash = "" + getSHA1(message + secret_key + timestamp);

        String[] keys = { "doc", "message", "timestamp", "message_hash", "restaurant_id" };
        String[] values = { doc, doc, timestamp, hash, restID };

        String postData = buildQueryString(keys, values);
        System.out.println(postData);
        Request response = builder.sendRequest(postData, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
                if (authenticating)
                    storage.setItem("authenticated?", "no");
                else
                    showDialog("Synchronize could not be completed.");
            }

            public void onResponseReceived(Request request, Response response) {
                System.out.println("response.getText() - " + response.getText());
                if (response.getText().equals("ERROR: Incomplete or Malformed doc") && authenticating) {
                    showDialog("Invalid Restaurant ID");
                    storage.setItem("authenticated?", "no");
                    return;
                } else if (response.getText().equals("ERROR: Incomplete or Malformed doc") && !authenticating) {
                    showDialog("Synchronize could not be completed.");
                    storage.setItem("authenticated?", "no");
                    return;
                }
                storage.setItem("menu", response.getText());

                if (authenticating)
                    storage.setItem("authenticated?", "yes");
                else
                    showDialog("You have successfully synchronized your menu!");
            }
        });

    } catch (RequestException e) {
        return "Update Unsuccessful";
    }

    return ""; // asynchronous callback, so whether or not successful is determined later
}

From source file:com.gwtext.client.widgets.tree.XMLTreeLoader.java

License:Open Source License

private static void requestData(final JavaScriptObject treeLoaderJS, final TreeNode root,
        final XMLTreeLoader treeLoader, String method, String url, final JavaScriptObject success,
        final JavaScriptObject failure, final JavaScriptObject callback, String params) {
    //build side nav tree from xml data
    RequestBuilder.Method httpMethod = "post".equalsIgnoreCase(method) ? RequestBuilder.POST
            : RequestBuilder.GET;//from   w  w  w .java2s. c  o  m

    RequestBuilder builder = new RequestBuilder(httpMethod, url);
    builder.setHeader("Content-type", "application/x-www-form-urlencoded");
    try {
        builder.sendRequest(params, new RequestCallback() {

            public void onResponseReceived(Request request, Response response) {
                if (response.getStatusCode() == 200) {
                    Document xml = null;
                    try {
                        xml = XMLParser.parse(response.getText());
                    } catch (Exception e) {
                        call(failure, treeLoaderJS, root.getJsObj(), callback, e.getMessage());
                        return;
                    }
                    String rootTag = treeLoader.getRootTag();
                    Node rootNode = null;
                    if (rootTag == null) {
                        rootNode = xml.getDocumentElement().getParentNode().getChildNodes().item(0);
                    } else {
                        rootNode = xml.getElementsByTagName(rootTag).item(0);
                    }
                    load(treeLoader, root, rootNode.getChildNodes());
                    call(success, treeLoaderJS, root.getJsObj(), callback, response.getText());

                } else {
                    call(failure, treeLoaderJS, root.getJsObj(), callback,
                            response.getStatusCode() + ":" + response.getText());
                }
            }

            public void onError(Request request, Throwable throwable) {
                call(failure, treeLoaderJS, root.getJsObj(), callback, throwable.getMessage());
            }
        });
    } catch (RequestException e) {
        call(failure, treeLoaderJS, root.getJsObj(), callback, e.getMessage());
    }
}

From source file:com.gwtmodel.table.ReadRequestHtml.java

License:Apache License

public static void doGet(String url, ISetRequestText iSet) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
    try {/*from w  w  w  .  ja v a 2 s.c  om*/
        Request response = builder.sendRequest(null, new RequestCallbackM(iSet, url));
    } catch (RequestException e) {
        iSet.setText(e.getMessage());
    }
}

From source file:com.gwtsite.musicplayer.client.MusicPlayer.java

License:Apache License

private void addListeners() {
    grid.addGridRowListener(new GridRowListenerAdapter() {

        public void onRowClick(GridPanel grid, int rowIndex, EventObject e) {
            Record record = grid.getStore().getAt(rowIndex);
            String title = record.getAsString("title");
            lyricsArea.setVisible(true);
            lyricsArea.setTitle("Lyrics for " + title);
            displaySongLyrics(title);//from   www. ja v a2 s  .c  om
        }

        private void displaySongLyrics(String title) {
            try {
                RequestBuilder request = new RequestBuilder(RequestBuilder.GET, title + ".txt");
                request.sendRequest(null, new RequestCallback() {
                    public void onError(Request request, Throwable exception) {
                        System.out.println("doh, error: " + exception.getStackTrace());
                    }

                    public void onResponseReceived(Request request, Response response) {
                        lyricsArea.setHtml(response.getText());
                    }

                });
            } catch (RequestException e) {
                // unable to fetch lyrics
                e.printStackTrace();
            }
        }

        public void onRowDblClick(GridPanel grid, int rowIndex, EventObject e) {
            if (currentSong != null) {
                currentSong.stop();
            }

            Record record = grid.getStore().getAt(rowIndex);
            final String title = record.getAsString("title");
            String mp3Name = title + ".mp3";

            currentSong = soundController.createSound(Sound.MIME_TYPE_AUDIO_MPEG, mp3Name);

            currentSong.addEventHandler(new SoundHandler() {
                public void onSoundComplete(SoundCompleteEvent event) {
                    songPlaying(false);
                }

                public void onSoundLoadStateChange(SoundLoadStateChangeEvent event) {
                    nowPlaying.setText("Now Playing - " + title);
                }

            });
            currentSong.play();
            nowPlaying.setHTML("<img class=\"loading-img\" src=\"1-0.gif\"/>Loading song - " + title);
            songPlaying(true);
        }

    });

    stopSongBtn.addListener(new ButtonListenerAdapter() {
        public void onClick(Button button, EventObject e) {
            currentSong.stop();
            songPlaying(false);
        }
    });

}