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;
   }-*/;
 }