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

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

Introduction

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

Prototype

public void setHeader(String header, String value) 

Source Link

Document

Sets a request header with the given name and value.

Usage

From source file:com.google.gwt.sample.healthyeatingapp.client.FacebookGraph.java

private void QueryGraph(String id, Method method, String params,
        final Callback<JSONObject, Throwable> callback) {
    final String requestData = "access_token=" + token + (params != null ? "&" + params : "");
    RequestBuilder builder;
    if (method == RequestBuilder.POST) {
        builder = new RequestBuilder(method, "https://graph.facebook.com/" + id);
        builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
    } else if (method == RequestBuilder.GET) {
        builder = new RequestBuilder(method, "https://graph.facebook.com/" + id + "?" + requestData);
    } else {/* w  w w. j  a va  2  s  . c o m*/
        callback.onFailure(new IOException("doGraph only supports GET and POST requests"));
        return;
    }
    try {
        builder.sendRequest(requestData, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
                callback.onFailure(exception);
            }

            public void onResponseReceived(Request request, Response response) {
                if (Response.SC_OK == response.getStatusCode()) {
                    callback.onSuccess(JSONParser.parseStrict(response.getText()).isObject());
                } else if (Response.SC_BAD_REQUEST == response.getStatusCode()) {
                    callback.onFailure(new IOException("Error: " + response.getText()));
                } else {
                    callback.onFailure(
                            new IOException("Couldn't retrieve JSON (" + response.getStatusText() + ")"));
                }
            }

        });
    } catch (RequestException e) {
        callback.onFailure(e);
    }
}

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

private void send() {
    cp.showLoading(true);//from  w  ww  .j  a v  a  2 s  .  c  o m

    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++;//from www .  ja va2s . c o m

    // 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.google.web.bindery.requestfactory.gwt.client.DefaultRequestTransport.java

License:Apache License

/**
 * Override to change the headers sent in the HTTP request.
 * // ww  w . ja  v  a  2  s  . co m
 * @param builder a {@link RequestBuilder} instance
 */
protected void configureRequestBuilder(RequestBuilder builder) {
    builder.setHeader("Content-Type", RequestFactory.JSON_CONTENT_TYPE_UTF8);
    builder.setHeader("pageurl", Location.getHref());
    builder.setHeader(STRONG_NAME_HEADER, GWT.getPermutationStrongName());
}

From source file:com.googlecode.gwtphonegap.client.util.PhonegapUtilImplDevice.java

License:Apache License

@Override
public void prepareService(ServiceDefTarget service, final String moduleUrl, String relativeServiceUrl) {
    service.setServiceEntryPoint(moduleUrl + relativeServiceUrl);

    service.setRpcRequestBuilder(new RpcRequestBuilder() {

        @Override//from www  .  ja  v a2 s . co m
        protected void doFinish(RequestBuilder rb) {
            super.doFinish(rb);

            rb.setHeader(MODULE_BASE_HEADER, moduleUrl);
        }

    });

    if (!(service instanceof PhonegapRPCService)) {
        throw new IllegalStateException(
                "the rpc service you are trying to use was not generated by Phonegap RPC Serivce Generator");
    }
    PhonegapRPCService phonegapRPCService = (PhonegapRPCService) service;
    phonegapRPCService.setModuleBaseUrl(moduleUrl);

}

From source file:com.gsr.myschool.common.client.security.SecureRequestTransport.java

License:Apache License

@Override
protected void configureRequestBuilder(RequestBuilder builder) {
    builder.setHeader("Content-Type", RequestFactory.JSON_CONTENT_TYPE_UTF8);
    builder.setHeader("pageurl", Window.Location.getHref());
    builder.setHeader(STRONG_NAME_HEADER, GWT.getPermutationStrongName());

    if (securityUtils.isLoggedIn()) {
        String encodedCredentials = Base64
                .encode(securityUtils.getUsername() + ":" + securityUtils.getPassword());
        builder.setHeader("Authorization", "Basic " + encodedCredentials);
    }/* w  w w  . ja v a2 s.  c  o  m*/
}

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 a 2s  .  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 {// w  w w.  j  a  va 2 s . co  m
        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   ww w .j  a  v a2  s .  co 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.gwtplatform.dispatch.client.PhoneGapDispatchAsync.java

License:Apache License

@Override
protected void prepareService(ServiceDefTarget service, final String moduleUrl, String relativeServiceUrl) {
    service.setServiceEntryPoint(remoteServerUrl + relativeServiceUrl);
    service.setRpcRequestBuilder(new RpcRequestBuilder() {
        @Override//  w  w w  .j ava2s .  c  o m
        protected void doFinish(RequestBuilder requestBuilder) {
            super.doFinish(requestBuilder);

            requestBuilder.setHeader(MODULE_BASE_HEADER, remoteServerUrl);
        }
    });
}