List of usage examples for com.google.gwt.http.client RequestBuilder setHeader
public void setHeader(String header, String value)
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¶m1=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¶m1=value1#hash */ String redirectUrl = Location.getPath() + Location.getQueryString() + Location.getHash(); builder.setHeader(GaeHelper.REDIRECT_URL_HTTP_HEADER_NAME, redirectUrl); }