com.google.gwt.jsonp.client

## Class JsonpRequestBuilder

- java.lang.Object
- - com.google.gwt.jsonp.client.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 Summary

    Constructors
    Constructor and Description
    `JsonpRequestBuilder()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getCallbackParam()` Returns the name of the callback url parameter to send to the server.
    `java.lang.String` | `getFailureCallbackParam()` Returns the name of the failure callback url parameter to send to the server.
    `int` | `getTimeout()` Returns the expected timeout (ms) for this request.
    `JsonpRequest<java.lang.Boolean>` | `requestBoolean(java.lang.String url, AsyncCallback<java.lang.Boolean> callback)`
    `JsonpRequest<java.lang.Double>` | `requestDouble(java.lang.String url, AsyncCallback<java.lang.Double> callback)`
    `JsonpRequest<java.lang.Integer>` | `requestInteger(java.lang.String url, AsyncCallback<java.lang.Integer> callback)`
    `<T extends JavaScriptObject> JsonpRequest<T>` | `requestObject(java.lang.String url, AsyncCallback<T> callback)` Sends a JSONP request and expects a JavaScript object as a result.
    `JsonpRequest<java.lang.String>` | `requestString(java.lang.String url, AsyncCallback<java.lang.String> callback)`
    `void` | `send(java.lang.String url)` Sends a JSONP request and does not expect any results.
    `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.
    `void` | `setCallbackParam(java.lang.String callbackParam)`
    `void` | `setFailureCallbackParam(java.lang.String failureCallbackParam)`
    `void` | `setPredeterminedId(java.lang.String id)`
    `void` | `setTimeout(int timeout)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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 JavaScriptObject> JsonpRequest<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.