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.fredhat.gwt.xmlrpc.client.XmlRpcClient.java

License:Open Source License

/**
 * Executes an asynchronous XMLRPC call to the server with a specified username
 * and password.  If the execution was successful, the callback's {@link AsyncCallback#onSuccess(Object)} 
 * method will be invoked with the return value as the argument.  If the 
 * execution failed for any reason, the callback's {@link AsyncCallback#onFailure(Throwable)} method will 
 * be invoked with an instance of {@link XmlRpcException} instance as it's argument.
 * @param username the username for authentication
 * @param password the password for authentication
 * @param methodName the name of the XMLRPC method
 * @param params the parameters for the XMLRPC method
 * @param callback the logic implementation for handling the XMLRPC responses.
 * @deprecated As of XMLRPC-GWT v1.1,//from   w  w  w . j  a  va2 s.  com
 * build an {@link XmlRpcRequest} then call {@link XmlRpcRequest#execute()}
 */
@SuppressWarnings("unchecked")
@Deprecated
public void execute(String username, String password, String methodName, Object[] params,
        final AsyncCallback callback) {
    if (methodName == null || methodName.equals("")) {
        callback.onFailure(new XmlRpcException("The method name parameter cannot be null"));
        return;
    }
    if (params == null)
        params = new Object[0];

    Document request = buildRequest(methodName, params);
    if (debugMessages)
        System.out.println("** Request **\n" + request + "\n*************");

    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, serverURL);
    requestBuilder.setHeader("Content-Type", "text/xml");
    requestBuilder.setTimeoutMillis(timeout);
    if (username != null)
        requestBuilder.setUser(username);
    if (password != null)
        requestBuilder.setPassword(password);

    try {
        requestBuilder.sendRequest(request.toString(), new RequestCallback() {
            public void onResponseReceived(Request req, Response res) {
                if (res.getStatusCode() != 200) {
                    callback.onFailure(new XmlRpcException("Server returned " + "response code "
                            + res.getStatusCode() + " - " + res.getStatusText()));
                    return;
                }
                Object responseObj = buildResponse(res.getText());
                if (responseObj instanceof XmlRpcException)
                    callback.onFailure((XmlRpcException) responseObj);
                else
                    callback.onSuccess(responseObj);
            }

            public void onError(Request req, Throwable t) {
                callback.onFailure(t);
            }
        });
    } catch (RequestException e) {
        callback.onFailure(new XmlRpcException("Couldn't make server request", e));
    }
}

From source file:com.fredhat.gwt.xmlrpc.client.XmlRpcRequest.java

License:Open Source License

/**
 * Invokes the XML-RPC method asynchronously.  All success and failure logic will
 * be in your {@link AsyncCallback} that you defined in the constructor.
 *//*  ww w  .ja  v a2s . com*/
public void execute() {
    if (methodName == null || methodName.equals("")) {
        callback.onFailure(new XmlRpcException("The method name parameter cannot be null"));
        return;
    }

    if (params == null)
        params = new Object[] {};

    Document request = buildRequest(methodName, params);
    if (client.getDebugMode())
        System.out.println("** Request **\n" + request + "\n*************");

    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, client.getServerURL());
    requestBuilder.setHeader("Content-Type", "text/xml");

    //Ak existuje cookie posli ju v hlavicke
    if (Cookies.getCookie("sessionID") != null) {
        requestBuilder.setHeader("sessionID", Cookies.getCookie("sessionID"));
    }

    requestBuilder.setTimeoutMillis(client.getTimeoutMillis());
    if (client.getUsername() != null)
        requestBuilder.setUser(client.getUsername());
    if (client.getPassword() != null)
        requestBuilder.setPassword(client.getPassword());

    try {

        requestBuilder.sendRequest(request.toString(), new RequestCallback() {
            public void onResponseReceived(Request req, Response res) {
                if (res.getStatusCode() != 200) {
                    callback.onFailure(new XmlRpcException("Server returned " + "response code "
                            + res.getStatusCode() + " - " + res.getStatusText()));
                    return;
                }
                try {
                    T responseObj = buildResponse(res.getText());
                    callback.onSuccess(responseObj);

                } catch (XmlRpcException e) {
                    callback.onFailure(e);
                } catch (ClassCastException e) {
                    callback.onFailure(e);
                }
            }

            public void onError(Request req, Throwable t) {
                callback.onFailure(t);
            }
        });
    } catch (RequestException e) {
        callback.onFailure(new XmlRpcException("Couldn't make server request.  Are you violating the "
                + "Same Origin Policy?  Error: " + e.getMessage(), e));
    }
}

From source file:com.github.nmorel.gwtjackson.rest.api.RestRequestBuilder.java

License:Apache License

public Request send() {
    if (null == method) {
        throw new IllegalArgumentException("The method is required");
    }//from w  w w. j  a  v a2s  .  co  m
    if (null == url) {
        throw new IllegalArgumentException("The url is required");
    }

    String urlWithParams = url;
    if (null != pathParams && !pathParams.isEmpty()) {
        for (Entry<String, Object> pathParam : pathParams.entrySet()) {
            urlWithParams = urlWithParams.replace("{" + pathParam.getKey() + "}",
                    pathParam.getValue() == null ? "" : pathParam.getValue().toString());
        }
    }

    StringBuilder urlBuilder = new StringBuilder(applicationPath);
    if (!applicationPath.endsWith("/") && !urlWithParams.startsWith("/")) {
        urlBuilder.append('/');
    }
    urlBuilder.append(urlWithParams);

    if (null != queryParams && !queryParams.isEmpty()) {
        boolean first = true;
        for (Entry<String, List<Object>> params : queryParams.entrySet()) {
            String name = URL.encodeQueryString(params.getKey());
            if (null != params.getValue() && !params.getValue().isEmpty()) {
                for (Object param : params.getValue()) {
                    if (first) {
                        urlBuilder.append('?');
                        first = false;
                    } else {
                        urlBuilder.append('&');
                    }
                    urlBuilder.append(name);
                    if (null != param) {
                        urlBuilder.append('=');
                        urlBuilder.append(URL.encodeQueryString(param.toString()));
                    }
                }
            }
        }
    }

    RequestBuilder builder = new RequestBuilder(method, urlBuilder.toString());
    builder.setHeader("Content-Type", "application/json; charset=utf-8");
    builder.setHeader("Accept", "application/json");

    if (null != headers && !headers.isEmpty()) {
        for (Entry<String, String> header : headers.entrySet()) {
            builder.setHeader(header.getKey(), header.getValue());
        }
    }

    if (null != user) {
        builder.setUser(user);
    }

    if (null != password) {
        builder.setPassword(password);
    }

    if (null != includeCredentials) {
        builder.setIncludeCredentials(includeCredentials);
    }

    if (null != timeoutMillis) {
        builder.setTimeoutMillis(timeoutMillis);
    }

    if (null != body) {
        if (null != bodyConverter) {
            builder.setRequestData(bodyConverter.write(body));
        } else {
            builder.setRequestData(body.toString());
        }
    }

    builder.setCallback(new RestRequestCallback<R>(responseConverter, callback));

    try {
        return builder.send();
    } catch (RequestException e) {
        throw new RestException(e);
    }
}

From source file:com.gloopics.g3viewer.client.G3Viewer.java

License:Apache License

public void doJSONRequest(final String a_URL, final HttpSuccessHandler a_Handler, final boolean a_hasParams,
        final boolean a_IncludeCSRF, String a_Data) {
    try {//from   ww w. j a v a2s  .  c o m
        String url;
        if (m_CSRF != null && a_IncludeCSRF) {
            url = a_URL + (a_hasParams ? "&csrf=" : "?csrf=") + m_CSRF;
        } else {
            url = a_URL;
        }
        RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, url);
        requestBuilder.setHeader("Content-Type", "application/x-www-form-urlencoded");
        requestBuilder.setHeader("X-Requested-With", "XMLHttpRequest");
        requestBuilder.setCallback(new JSONResponseTextHandler(new JSONResponseCallback() {

            @Override
            public void onResponse(JSONValue aValue) {
                a_Handler.success(aValue);
            }

            @Override
            public void onError(Throwable aThrowable) {

                if (aThrowable.getCause() != null) {
                    StringBuffer stack = new StringBuffer();
                    StackTraceElement[] stes = aThrowable.getCause().getStackTrace();
                    for (StackTraceElement ste : stes) {
                        stack.append(ste.toString());
                        stack.append(" \n ");
                    }
                    displayError("a Unexpected Error ",
                            aThrowable.toString() + " - " + a_URL + "\n " + stack.toString());

                } else {
                    displayError("a Unexpected Error ", aThrowable.toString() + " - " + a_URL);
                }
            }
        }));

        requestBuilder.setRequestData(a_Data);
        requestBuilder.send();
    } catch (RequestException ex) {
        displayError("Request Exception", ex.toString() + " - " + a_URL);
    }
}

From source file:com.goodow.wind.channel.rpc.impl.AjaxRpc.java

License:Apache License

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

    final int requestId = nextRequestId;
    nextRequestId++;/*  w  ww .  j  a  v a 2  s.  c om*/

    // 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: 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 (!Browser.getInfo().isWebKit() && !Browser.getInfo().isGecko()) {
        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 onError(Request request, Throwable exception) {
            if (!handles.hasKey(requestId)) {
                log.log(Level.INFO, "RPC FailureDrop, id=" + requestId + " " + exception.getMessage());
                return;
            }
            removeHandle();
            error(exception);
        }

        @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 (JsonException e) {
                    // Semi-HACK: 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 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);
            }
        }

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

        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 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: Decide if this should be a badRequest.
        innerCallback.error(e);
        return null;
    }
}

From source file:com.google.gerrit.client.rpc.RestApi.java

License:Apache License

private <T extends JavaScriptObject> void sendJSON(Method method, JavaScriptObject content,
        AsyncCallback<T> cb) {//from   w ww .j  a va  2 s.  com
    HttpCallback<T> httpCallback = new HttpCallback<T>(cb);
    try {
        RpcStatus.INSTANCE.onRpcStart();
        String body = new JSONObject(content).toString();
        RequestBuilder req = request(method);
        req.setHeader("Content-Type", JSON_UTF8);
        req.sendRequest(body, httpCallback);
    } catch (RequestException e) {
        httpCallback.onError(null, e);
    }
}

From source file:com.google.gerrit.client.rpc.RestApi.java

License:Apache License

private RequestBuilder request(Method method) {
    RequestBuilder req = new RequestBuilder(method, url());
    if (ifNoneMatch != null) {
        req.setHeader("If-None-Match", ifNoneMatch);
    }/*from ww  w . j av a  2 s  .  c  om*/
    req.setHeader("Accept", JSON_TYPE);
    if (Gerrit.getXGerritAuth() != null) {
        req.setHeader("X-Gerrit-Auth", Gerrit.getXGerritAuth());
    }
    return req;
}

From source file:com.google.gwt.examples.http.client.PostExample.java

public static void doPost(String url, String postData) {
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);

    try {//from   w  w w.j a  v  a2  s  .  c  om
        builder.setHeader("Content-Type", "application/x-www-form-urlencoded");
        Request response = builder.sendRequest(postData, new RequestCallback() {

            public void onError(Request request, Throwable exception) {
                // code omitted for clarity
            }

            public void onResponseReceived(Request request, Response response) {
                // code omitted for clarity
            }
        });
    } catch (RequestException e) {
        Window.alert("Failed to send the request: " + e.getMessage());
    }
}

From source file:com.google.gwt.sample.authrequest.client.SampleAuthRequestTransport.java

License:Apache License

@Override
protected void configureRequestBuilder(RequestBuilder builder) {
    super.configureRequestBuilder(builder);

    /*//  w  w w .ja va 2s .com
     * Add the redirect URL in case the user is logged out.
     * 
     * /MobileWebApp.html?parem0=value0&param1=value1#hash
     */
    String redirectUrl = Location.getPath() + Location.getQueryString() + Location.getHash();
    builder.setHeader(AuthHelper.REDIRECT_URL_HTTP_HEADER_NAME, redirectUrl);
}

From source file:com.google.gwt.sample.gaerequest.client.GaeAuthRequestTransport.java

License:Apache License

@Override
protected void configureRequestBuilder(RequestBuilder builder) {
    super.configureRequestBuilder(builder);

    /*//from ww  w  . j av a 2s  .c  o  m
     * Add the redirect URL in case the user is logged out.
     * 
     * /MobileWebApp.html?parem0=value0&param1=value1#hash
     */
    String redirectUrl = Location.getPath() + Location.getQueryString() + Location.getHash();
    builder.setHeader(GaeHelper.REDIRECT_URL_HTTP_HEADER_NAME, redirectUrl);
}