Package 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 (seesetCallbackParam(String)
), and <json> is the response to the request in json format. This will result on the client to call the correspondingAsyncCallback.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 correspondingAsyncCallback.onFailure(Throwable)
method. SeesetFailureCallbackParam(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 Description JsonpRequestBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
-
-
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 useJSONObject
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.
-
-