List of usage examples for com.google.gwt.http.client RequestBuilder RequestBuilder
protected RequestBuilder(String httpMethod, String url)
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++;//w w w . j a va 2s . 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(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
/** * Constructs a {@link RequestBuilder} using the {@link RequestBuilder#POST} * method sent to the URL returned from {@link #getRequestUrl()}. * // w w w. ja v a 2 s . co m * @return a {@link RequestBuilder} instance */ protected RequestBuilder createRequestBuilder() { return new RequestBuilder(RequestBuilder.POST, getRequestUrl()); }
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 ww . java 2 s. c om 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 {/* www . ja v a 2 s .co 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 www . j a v a2 s . c o 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.gwtcx.extgwt.client.desktop.view.AbstractSettingsView.java
License:Open Source License
@Inject public AbstractSettingsView(final String filename) { super();//ww w. ja va2 s . c om Log.debug("AbstractPagingView()"); this.filename = filename; // panel.setStyleName(StyleTokens.contextArea); setPanel(new VerticalLayoutContainer()); getPanel().setSize(CONTEXT_AREA_WIDTH, CONTEXT_AREA_HEIGHT); this.builder = new RequestBuilder(RequestBuilder.GET, setDataUrl(URL_PREFIX + getFilename(), FILENAME_EXTENSION)); this.proxy = new HttpProxy<ListLoadConfig>(builder); this.reader = new XmlReader<ListLoadResult<ContextAreaModel>, ContextAreaModelCollection>( XmlAutoBeanFactory.instance, ContextAreaModelCollection.class) { protected com.sencha.gxt.data.shared.loader.ListLoadResult<ContextAreaModel> createReturnData( Object loadConfig, ContextAreaModelCollection records) { return new ListLoadResultBean<ContextAreaModel>(records.getValues()); }; }; this.store = new ListStore<ContextAreaModel>(new ModelKeyProvider<ContextAreaModel>() { @Override public String getKey(ContextAreaModel item) { return item.getColumn1DisplayName(); // return item.getColumn1Name(); } }); this.loader = new ListLoader<ListLoadConfig, ListLoadResult<ContextAreaModel>>(this.proxy, this.reader); this.loader.useLoadConfig(XmlAutoBeanFactory.instance.create(ListLoadConfig.class).as()); this.loader.addLoadHandler( new LoadResultListStoreBinding<ListLoadConfig, ContextAreaModel, ListLoadResult<ContextAreaModel>>( this.store)); setGrid(new ContextAreaGrid(store, getContextAreaColumModel())); getGrid().setSize(CONTEXT_AREA_WIDTH, CONTEXT_AREA_HEIGHT); getGrid().setLoadMask(true); getGrid().setLoader(getLoader()); getLoader().load(); // add the Grid to the View's layout container getPanel().add(getGrid(), new VerticalLayoutData(1, 1)); Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { @Override public void execute() { Log.debug("execute()"); resize(); } }); bindCustomUiHandlers(); }
From source file:com.gwtcx.extgwt.client.widgets.NavigationPaneSection.java
License:Open Source License
@Inject public NavigationPaneSection(final String filename) { super(appearance); this.filename = filename; setBuilder(/*from w ww .ja v a2s.c om*/ new RequestBuilder(RequestBuilder.GET, setDataUrl(URL_PREFIX + getFilename(), FILENAME_EXTENSION))); setProxy(new HttpProxy<ListLoadConfig>(builder)); setReader(new XmlReader<ListLoadResult<NavigationPaneSectionModel>, NavigationPaneSectionModelCollection>( XmlAutoBeanFactory.instance, NavigationPaneSectionModelCollection.class) { protected com.sencha.gxt.data.shared.loader.ListLoadResult<NavigationPaneSectionModel> createReturnData( Object loadConfig, NavigationPaneSectionModelCollection records) { return new ListLoadResultBean<NavigationPaneSectionModel>(records.getValues()); }; }); setStore(new ListStore<NavigationPaneSectionModel>(new ModelKeyProvider<NavigationPaneSectionModel>() { @Override public String getKey(NavigationPaneSectionModel item) { // Log.debug("getKey(NavigationPaneSectionModel item): " + item.getName()); return item.getName(); } })); setLoader(new ListLoader<ListLoadConfig, ListLoadResult<NavigationPaneSectionModel>>(getProxy(), getReader())); getLoader().useLoadConfig(XmlAutoBeanFactory.instance.create(ListLoadConfig.class).as()); getLoader().addLoadHandler( new LoadResultListStoreBinding<ListLoadConfig, NavigationPaneSectionModel, ListLoadResult<NavigationPaneSectionModel>>( getStore())); setGrid(new NavigationPaneSectionGrid(store, getColumModel())); // getGrid().setSize(NAVIGATION_PANE_WIDTH, NAVIGATION_PANE_HEIGHT); getGrid().setLoadMask(true); getGrid().setLoader(getLoader()); getLoader().load(); // add the Grid to the Panel's layout container this.add(getGrid()); // , new VerticalLayoutData(1, 1)); }
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 . j av a 2 s .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 {// ww w.j a v a 2s . c om Request response = builder.sendRequest(null, new RequestCallbackM(iSet, url)); } catch (RequestException e) { iSet.setText(e.getMessage()); } }
From source file:com.gwtplatform.dispatch.client.rest.RestRequestBuilderFactory.java
License:Apache License
public <A extends RestAction<?>> RequestBuilder build(A action, String securityToken) throws ActionException { RequestBuilder.Method httpMethod = HTTP_METHODS.get(action.getHttpMethod()); String url = buildUrl(action); RequestBuilder requestBuilder = new RequestBuilder(httpMethod, url); for (RestParameter param : action.getHeaderParams()) { requestBuilder.setHeader(param.getName(), encode(param)); }//ww w . j a v a 2 s. c om requestBuilder.setHeader(CONTENT_TYPE, JSON_UTF8); requestBuilder.setHeader(MODULE_BASE_HEADER, baseUrl); if (action.hasFormParams()) { requestBuilder.setRequestData(buildQueryString(action.getFormParams())); } else if (action.hasBodyParam()) { requestBuilder.setRequestData(getSerializedValue(action, action.getBodyParam())); } if (securityToken != null && securityToken.length() > 0) { requestBuilder.setHeader(securityHeaderName, securityToken); } return requestBuilder; }