Class JsonpRequestBuilder


  • public class JsonpRequestBuilder
    extends java.lang.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 Detail

      • JsonpRequestBuilder

        public JsonpRequestBuilder()
    • Method Detail

      • getCallbackParam

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

        public java.lang.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<java.lang.Boolean> requestBoolean​(java.lang.String url,
                                                              AsyncCallback<java.lang.Boolean> callback)
      • requestDouble

        public JsonpRequest<java.lang.Double> requestDouble​(java.lang.String url,
                                                            AsyncCallback<java.lang.Double> callback)
      • requestInteger

        public JsonpRequest<java.lang.Integer> requestInteger​(java.lang.String url,
                                                              AsyncCallback<java.lang.Integer> callback)
      • requestObject

        public <T extends JavaScriptObjectJsonpRequest<T> requestObject​(java.lang.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<java.lang.String> requestString​(java.lang.String url,
                                                            AsyncCallback<java.lang.String> callback)
      • send

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

        public JsonpRequest<java.lang.Void> send​(java.lang.String url,
                                                 AsyncCallback<java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String id)
      • setTimeout

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