Class JsonpRequestBuilder

java.lang.Object
com.google.gwt.jsonp.client.JsonpRequestBuilder

public class JsonpRequestBuilder extends Object
Class to send cross domain requests to an http server. The server will receive a request including a callback url parameter, which should be used to return the response as following:
<callback>(<json>);
where <callback> is the url parameter (see setCallbackParam(String)), and <json> is the response to the request in json format. This will result on the client to call the corresponding AsyncCallback.onSuccess(Object) method.

If needed, errors can be handled by a separate callback:

<failureCallback>(<error>);
where <error> is a string containing an error message. This will result on the client to call the corresponding AsyncCallback.onFailure(Throwable) method. See setFailureCallbackParam(String).

Example using JSON Google Calendar GData API:

 String url = "http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full" +
     "?alt=json-in-script";
 JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
 jsonp.requestObject(url,
     new AsyncCallback<Feed>() {
       public void onFailure(Throwable throwable) {
         Log.severe("Error: " + throwable);
       }

       public void onSuccess(Feed feed) {
         JsArray<Entry> entries = feed.getEntries();
         for (int i = 0; i < entries.length(); i++) {
           Entry entry = entries.get(i);
           Log.info(entry.getTitle() +
                    " (" + entry.getWhere() + "): " +
                    entry.getStartTime() + " -> " +
                    entry.getEndTime());
         }
       }
     });
 
This example uses these overlay types:
 class Entry extends JavaScriptObject {
   protected Entry() {}

   public final native String getTitle() /*-{
     return this.title.$t;
   }-*/;

   public final native String getWhere() /*-{
     return this.gd$where[0].valueString;
   }-*/;

   public final native String getStartTime() /*-{
     return this.gd$when ? this.gd$when[0].startTime : null;
   }-*/;

   public final native String getEndTime() /*-{
     return this.gd$when ? this.gd$when[0].endTime : null;
   }-*/;
 }

 class Feed extends JavaScriptObject {
   protected Feed() {}

   public final native JsArray<Entry> getEntries() /*-{
     return this.feed.entry;
   }-*/;
 }
 

  • Constructor Details

    • JsonpRequestBuilder

      public JsonpRequestBuilder()
  • Method Details

    • getCallbackParam

      public String getCallbackParam()
      Returns the name of the callback url parameter to send to the server. The default value is "callback".
    • getFailureCallbackParam

      public String getFailureCallbackParam()
      Returns the name of the failure callback url parameter to send to the server. The default is null.
    • getTimeout

      public int getTimeout()
      Returns the expected timeout (ms) for this request.
    • requestBoolean

      public JsonpRequest<Boolean> requestBoolean(String url, AsyncCallback<Boolean> callback)
    • requestDouble

      public JsonpRequest<Double> requestDouble(String url, AsyncCallback<Double> callback)
    • requestInteger

      public JsonpRequest<Integer> requestInteger(String url, AsyncCallback<Integer> callback)
    • requestObject

      public <T extends JavaScriptObject> JsonpRequest<T> requestObject(String url, AsyncCallback<T> callback)
      Sends a JSONP request and expects a JavaScript object as a result. The caller can either use JSONObject to parse it, or use a JavaScript overlay class.
    • requestString

      public JsonpRequest<String> requestString(String url, AsyncCallback<String> callback)
    • send

      public void send(String url)
      Sends a JSONP request and does not expect any results.
    • send

      public JsonpRequest<Void> send(String url, AsyncCallback<Void> callback)
      Sends a JSONP request, does not expect any result, but still allows to be notified when the request has been executed on the server.
    • setCallbackParam

      public void setCallbackParam(String callbackParam)
      Parameters:
      callbackParam - The name of the callback url parameter to send to the server. The default value is "callback".
    • setFailureCallbackParam

      public void setFailureCallbackParam(String failureCallbackParam)
      Parameters:
      failureCallbackParam - The name of the failure callback url parameter to send to the server. The default is null.
    • setPredeterminedId

      public void setPredeterminedId(String id)
    • setTimeout

      public void setTimeout(int timeout)
      Parameters:
      timeout - The expected timeout (ms) for this request. The default is 10s.