public class ConnectionRequest

  1. Object
  2. ConnectionRequest

ImplementsIOProgressListener

Known subtypesAdsService, MultipartRequest, GZConnectionRequest, CachedDataService, ImageDownloadService, RSSService, TwitterRESTService

This class represents a connection object in the form of a request response typically common for HTTP/HTTPS connections. A connection request is added to the com.codename1.io.NetworkManager for processing in a queue on one of the network threads. You can read more about networking in Codename One here

The sample code below fetches a page of data from the nestoria housing listing API.

You can see instructions on how to display the data in the com.codename1.components.InfiniteScrollAdapter class. You can read more about networking in Codename One here.

int pageNumber = 1;
java.util.List<Map<String, Object>> fetchPropertyData(String text) {
    try {
        ConnectionRequest r = new ConnectionRequest();
        r.setPost(false);
        r.setUrl("http://api.nestoria.co.uk/api");
        r.addArgument("pretty", "0");
        r.addArgument("action", "search_listings");
        r.addArgument("encoding", "json");
        r.addArgument("listing_type", "buy");
        r.addArgument("page", "" + pageNumber);
        pageNumber++;
        r.addArgument("country", "uk");
        r.addArgument("place_name", text);
        NetworkManager.getInstance().addToQueueAndWait(r);
        Map result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(r.getResponseData()), "UTF-8"));
        Map response = (Map)result.get("response");
        return (java.util.List<Map<String, Object>>)response.get("listings");
    } catch(Exception err) {
        Log.e(err);
        return null;
    }
}

Nested types

enum ConnectionRequest.CachingModeThere are 5 caching modes:
class ConnectionRequest.SSLCertificateEncapsulates an SSL certificate fingerprint.

Fields

public static final byte PRIORITY_CRITICAL = 100A critical priority request will “push” through the queue to the highest point regardless of anything else and ignoring anything that is not in itself of critical priority.
public static final byte PRIORITY_HIGH = 80A high priority request is the second highest level, it will act exactly like a critical priority with one difference.
public static final byte PRIORITY_NORMAL = 50Normal priority executes as usual on the queue
public static final byte PRIORITY_LOW = 30Low priority requests are mostly background tasks that should still be accomplished though
public static final byte PRIORITY_REDUNDANT = 0Redundant elements can be discarded from the queue when paused

Constructors

public ConnectionRequest()Default constructor
public ConnectionRequest(String url)Construct a connection request to a url
public ConnectionRequest(String url, boolean post)Construct a connection request to a url

Methods

public static ConnectionRequest.CachingMode getDefaultCacheMode()The default value for the cacheMode property see #getCacheMode()
public static void setDefaultCacheMode(ConnectionRequest.CachingMode aDefaultCacheMode)The default value for the cacheMode property see #getCacheMode()
public static boolean isReadResponseForErrorsDefault()Determines the default value for #isReadResponseForErrors()
public static void setReadResponseForErrorsDefault(boolean aReadResponseForErrorsDefault)Determines the default value for #setReadResponseForErrors(boolean)
public static boolean isHandleErrorCodesInGlobalErrorHandler()When set to true (the default), the global error handler in NetworkManager should receive errors for response code as well
public static void setHandleErrorCodesInGlobalErrorHandler(boolean aHandleErrorCodesInGlobalErrorHandler)When set to true (the default), the global error handler in NetworkManager should receive errors for response code as well
public static String getCookieHeader()Workaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to Cookie
public static void setCookieHeader(String aCookieHeader)Workaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to Cookie
public static boolean isCookiesEnabledDefault()
public static void setCookiesEnabledDefault(boolean aCookiesEnabledDefault)
public static boolean isDefaultFollowRedirects()Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects
public static void setDefaultFollowRedirects(boolean aDefaultFollowRedirects)Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects
public static boolean isReadTimeoutSupported()Checks if this platform supports read timeouts.
public static void purgeCacheDirectory() throws IOExceptionPurges all locally cached files
public static String getDefaultUserAgent()
public static void setDefaultUserAgent(String aDefaultUserAgent)
public static void setUseNativeCookieStore(boolean b)Indicates whether the native Cookie stores should be used
public static boolean isNativeCookieSharingSupported()Checks if the platform supports sharing cookies between the native components (e.g. BrowserComponent) and ConnectionRequests.
public static Map<String, Object> fetchJSON(String url) throws IOExceptionUtility method that returns a JSON structure or throws an IOException in case of a failure.
public static AsyncResource<Map<String, Object>> fetchJSONAsync(String url)Fetches JSON asynchronously.
public ConnectionRequest.CachingMode getCacheMode()There are 5 caching modes:
public void setCacheMode(ConnectionRequest.CachingMode cacheMode)There are 5 caching modes:
public boolean isCheckSSLCertificates()
public void setCheckSSLCertificates(boolean checkSSLCertificates)
public boolean isInsecure()Checks if the request is insecure (default false).
public void setInsecure(boolean insecure)Turns off checking to make sure that SSL certificate is valid.
public byte[] getResponseData()This method will return a valid value for only some of the responses and only after the response was processed
public String getHttpMethod()Returns the http method
public void setHttpMethod(String httpMethod)Sets the http method for the request
public void addRequestHeader(String key, String value)Adds the given header to the request that will be sent
public void removeRequestHeader(String key)Removes a header previously added with addRequestHeader(String, String).
public void removeRequestHeaderIfUnchanged(String key, String value)Removes a header previously added with addRequestHeader(String, String), but only while it still holds value.
protected void checkSSLCertificates(ConnectionRequest.SSLCertificate[] certificates)A callback that can be overridden by subclasses to check the SSL certificates for the server, and kill the connection if they don’t pass muster.
public int getReadTimeout()Gets the read timeout for this connection.
public void setReadTimeout(int timeout)Sets the read timeout for the connection.
protected void initConnection(Object connection)Invoked to initialize HTTP headers, cookies etc.
protected InputStream getCachedData() throws IOExceptionThis method should be overriden in CacheMode.MANUAL to provide offline caching.
public void purgeCache()Deletes the cache file if it exists, notice that this will not work for download files
protected void cacheUnmodified() throws IOExceptionThis callback is invoked on a 304 server response indicating the data in the server matches the result we currently have in the cache.
protected void cookieReceived(Cookie c)Callback invoked for every cookie received from the server
protected void cookieSent(Cookie c)Callback invoked for every cookie being sent to the server
protected String initCookieHeader(String cookie)Allows subclasses to inject cookies into the request
public int getResponseCode()Returns the response code for this request, this is only relevant after the request completed and might contain a temporary (e.g. redirect) code while the request is in progress
public int getResposeCode()Deprecated Returns the response code for this request, this is only relevant after the request completed and might contain a temporary (e.g. redirect) code while the request is in progress
protected boolean shouldConvertPostToGetOnRedirect()This mimics the behavior of browsers that convert post operations to get operations when redirecting a request.
protected void readHeaders(Object connection) throws IOExceptionAllows reading the headers from the connection by calling the getHeader() method.
protected void readErrorCodeHeaders(Object connection) throws IOExceptionAllows reading the headers from the connection by calling the getHeader() method when a response that isn’t 200 OK is sent.
protected String getHeader(Object connection, String header) throws IOExceptionReturns the HTTP header field for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.
protected String[] getHeaders(Object connection, String header) throws IOExceptionReturns the HTTP header field for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.
protected String[] getHeaderFieldNames(Object connection) throws IOExceptionReturns the HTTP header field names for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.
protected int getYield()Returns the amount of time to yield for other processes, this is an implicit method that automatically generates values for lower priority connections
protected boolean shouldAutoCloseResponse()Indicates whether the response stream should be closed automatically by the framework (defaults to true), this might cause an issue if the stream needs to be passed to a separate thread for reading.
protected void handleIOException(IOException err)Handles IOException thrown when performing a network operation
protected void handleRuntimeException(RuntimeException err)Handles an exception thrown when performing a network operation
protected void handleException(Exception err)Handles an exception thrown when performing a network operation, the default implementation shows a retry dialog.
public boolean canGetSSLCertificates()Checks to see if the platform supports getting SSL certificates.
public ConnectionRequest.SSLCertificate[] getSSLCertificates() throws IOExceptionGets the server’s SSL certificates for this requests.
protected void handleErrorResponseCode(int code, String message)Handles a server response code that is not 200 and not a redirect (unless redirect handling is disabled)
public void retry()Retry the current operation in case of an exception
public boolean onRedirect(String url)This is a callback method that been called when there is a redirect.
protected void readResponse(InputStream input) throws IOExceptionCallback for the server response with the input stream from the server.
protected void postResponse()A callback method that’s invoked on the EDT after the readResponse() method has finished, this is the place where developers should change their Codename One user interface to avoid race conditions that might be triggered by modifications within readResponse.
protected String createRequestURL()Creates the request URL mostly for a get request
protected void buildRequestBody(OutputStream os) throws IOExceptionInvoked when send body is true, by default sends the request arguments based on “POST” conventions
protected boolean shouldWriteUTFAsGetBytes()Returns whether when writing a post body the platform expects something in the form of string.getBytes(“UTF-8”) or new OutputStreamWriter(os, “UTF-8”).
public void kill()Kills this request if possible
protected boolean shouldStop()Returns true if the request is paused or killed, developers should call this method periodically to test whether they should quit the current IO operation immediately
protected boolean isPausable()Return true from this method if this connection can be paused and resumed later on.
public boolean pause()Invoked to pause this opeation, this method will only be invoked if isPausable() returns true (its false by default).
public boolean resume()Called when a previously paused operation now has the networking time to resume.
public boolean isPost()Returns true for a post operation and false for a get operation
public void setPost(boolean post)Set to true for a post operation and false for a get operation, this will implicitly set the method to post/get respectively (which you can change back by setting the method).
public void addArgument(String key, byte[] value)Deprecated Add an argument to the request response
public void removeArgument(String key)Removes the given argument from the request
public void removeAllArguments()Removes all arguments
public void addArgumentNoEncoding(String key, String value)Add an argument to the request response without encoding it, this is useful for arguments which are already encoded
public void addArgumentNoEncoding(String key, String[] value)Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key, notice that this doesn’t implicitly encode the value
public void addArgumentNoEncodingArray(String key, String... value)Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key, notice that this doesn’t implicitly encode the value
public void addArgument(String key, String value)Add an argument to the request response
public void addArgumentArray(String key, String... value)Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key
public void addArgument(String key, String[] value)Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key
public void addArguments(String key, String... value)Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key
public String getContentType()
public void setContentType(String contentType)
public boolean isWriteRequest()
public void setWriteRequest(boolean writeRequest)
public boolean isReadRequest()
public void setReadRequest(boolean readRequest)
protected boolean isPaused()
protected void setPaused(boolean paused)
protected boolean isKilled()
protected void setKilled(boolean killed)
public byte getPriority()The priority of this connection based on the constants in this class
public void setPriority(byte priority)The priority of this connection based on the constants in this class
public String getUserAgent()
public void setUserAgent(String userAgent)
public boolean isFollowRedirects()Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects
public void setFollowRedirects(boolean followRedirects)Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects
public int getTimeout()Indicates the timeout for this connection request
public void setTimeout(int timeout)Indicates the timeout for this connection request
public int getContentLength()Returns the content length header value
public void ioStreamUpdate(Object source, int bytes)Indicates the number of bytes that were read/written to/from the source stream
public String getUrl()
public void setUrl(String url)
public void addResponseListener(ActionListener<NetworkEvent> a)Adds a listener that would be notified on the CodenameOne thread of a response from the server.
public void removeResponseListener(ActionListener<NetworkEvent> a)Removes the given listener
public void addResponseCodeListener(ActionListener<NetworkEvent> a)Adds a listener that would be notified on the CodenameOne thread of a response code that is not a 200 (OK) or 301/2 (redirect) response code.
public void addExceptionListener(ActionListener<NetworkEvent> a)Adds a listener that would be notified on the CodenameOne thread of an exception in this connection request
public void removeResponseCodeListener(ActionListener<NetworkEvent> a)Removes the given listener
public void removeExceptionListener(ActionListener<NetworkEvent> a)Removes the given listener
protected boolean hasResponseListeners()Returns true if someone is listening to action response events, this is useful so we can decide whether to bother collecting data for an event in some cases since building the event object might be memory/CPU intensive.
protected void fireResponseListener(ActionEvent ev)Fires the response event to the listeners on this connection
public boolean isDuplicateSupported()Indicates whether this connection request supports duplicate entries in the request queue
public void setDuplicateSupported(boolean duplicateSupported)Indicates whether this connection request supports duplicate entries in the request queue
public int hashCode()Returns a hash code value for the object.
public boolean equals(Object o)Indicates whether some other object is “equal to” this one.
protected void validate()Validates that the request has the required information before being added to the queue e.g. checks if the URL is null.
public Dialog getDisposeOnCompletion()A dialog that will be seamlessly disposed once the given request has been completed
public void setDisposeOnCompletion(Dialog disposeOnCompletion)A dialog that will be seamlessly disposed once the given request has been completed
public Dialog getShowOnInit()This dialog will be shown when this request enters the network queue
public void setShowOnInit(Dialog showOnInit)This dialog will be shown when this request enters the network queue
public int getSilentRetryCount()Indicates the number of times to silently retry a connection that failed before prompting
public void setSilentRetryCount(int silentRetryCount)Indicates the number of times to silently retry a connection that failed before prompting
public boolean isFailSilently()Indicates that we are uninterested in error handling
public void setFailSilently(boolean failSilently)Indicates that we are uninterested in error handling
public boolean isReadResponseForErrors()When set to true the read response code will happen even for error codes such as 400 and 500
public void setReadResponseForErrors(boolean readResponseForErrors)When set to true the read response code will happen even for error codes such as 400 and 500
public String getResponseContentType()Returns the content type from the response headers
public boolean isRedirecting()Returns true if this request is been redirected to a different url
public String getDestinationFile()When set to a none null string saves the response to file system under this file name
public void setDestinationFile(String destinationFile)When set to a none null string saves the response to file system under this file name
public String getDestinationStorage()When set to a none null string saves the response to storage under this file name
public void setDestinationStorage(String destinationStorage)When set to a none null string saves the response to storage under this file name
public boolean isCookiesEnabled()
public void setCookiesEnabled(boolean cookiesEnabled)
public void setChunkedStreamingMode(int chunklen)This method is used to enable streaming of a HTTP request body without internal buffering, when the content length is not known in advance.
public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail, boolean useCache)Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.
public AsyncResource<Image> downloadImageToStorage(String storageFile)Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image..
public AsyncResource<Image> downloadImageToStorage(String storageFile, boolean useCache)Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image..
public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, boolean useCache)Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.
public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess)Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.
public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail)Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.
public AsyncResource<Image> downloadImageToFileSystem(String file, boolean useCache)Downloads an image to a the file system asynchronously returning an AsyncResource object that resolves to the loaded image..
public AsyncResource<Image> downloadImageToFileSystem(String file)Downloads an image to the file system asynchronously returning an AsyncResource object that resolves to the loaded image..
public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail, boolean useCache)Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.
public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, boolean useCache)Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.
public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess)Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.
public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail)Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.
public String getRequestBody()The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments
public void setRequestBody(String requestBody)The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments.
public void setRequestBody(Data data)The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments.
public Data getRequestBodyData()The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments
public String getResponseErrorMessage()Returns error message associated with an error response code

Inherited methods

Field details

PRIORITY_CRITICAL

public static final byte PRIORITY_CRITICAL = 100
A critical priority request will “push” through the queue to the highest point regardless of anything else and ignoring anything that is not in itself of critical priority. A critical priority will stop any none critical connection in progress

PRIORITY_HIGH

public static final byte PRIORITY_HIGH = 80
A high priority request is the second highest level, it will act exactly like a critical priority with one difference. It doesn’t block another incoming high priority request. E.g. if a high priority request

PRIORITY_NORMAL

public static final byte PRIORITY_NORMAL = 50
Normal priority executes as usual on the queue

PRIORITY_LOW

public static final byte PRIORITY_LOW = 30
Low priority requests are mostly background tasks that should still be accomplished though

PRIORITY_REDUNDANT

public static final byte PRIORITY_REDUNDANT = 0
Redundant elements can be discarded from the queue when paused

Constructor details

ConnectionRequest

public ConnectionRequest()
Default constructor

ConnectionRequest

public ConnectionRequest(String url)
Construct a connection request to a url

Parameters

url String
the url

ConnectionRequest

public ConnectionRequest(String url, boolean post)
Construct a connection request to a url

Parameters

url String
the url
post boolean
whether the request is a post url or a get URL

Method details

getDefaultCacheMode

public static ConnectionRequest.CachingMode getDefaultCacheMode()
The default value for the cacheMode property see #getCacheMode()

Returns

the defaultCacheMode

setDefaultCacheMode

public static void setDefaultCacheMode(ConnectionRequest.CachingMode aDefaultCacheMode)
The default value for the cacheMode property see #getCacheMode()

Parameters

aDefaultCacheMode ConnectionRequest.CachingMode
the defaultCacheMode to set

isReadResponseForErrorsDefault

public static boolean isReadResponseForErrorsDefault()
Determines the default value for #isReadResponseForErrors()

Returns

the readResponseForErrorsDefault

setReadResponseForErrorsDefault

public static void setReadResponseForErrorsDefault(boolean aReadResponseForErrorsDefault)
Determines the default value for #setReadResponseForErrors(boolean)

Parameters

aReadResponseForErrorsDefault boolean
the readResponseForErrorsDefault to set

isHandleErrorCodesInGlobalErrorHandler

public static boolean isHandleErrorCodesInGlobalErrorHandler()
When set to true (the default), the global error handler in NetworkManager should receive errors for response code as well

Returns

the handleErrorCodesInGlobalErrorHandler

setHandleErrorCodesInGlobalErrorHandler

public static void setHandleErrorCodesInGlobalErrorHandler(boolean aHandleErrorCodesInGlobalErrorHandler)
When set to true (the default), the global error handler in NetworkManager should receive errors for response code as well

Parameters

aHandleErrorCodesInGlobalErrorHandler boolean
the handleErrorCodesInGlobalErrorHandler to set

getCookieHeader

public static String getCookieHeader()
Workaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to Cookie

Returns

the cookieHeader

setCookieHeader

public static void setCookieHeader(String aCookieHeader)
Workaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to Cookie

Parameters

aCookieHeader String
the cookieHeader to set

isCookiesEnabledDefault

public static boolean isCookiesEnabledDefault()

Returns

the cookiesEnabledDefault

setCookiesEnabledDefault

public static void setCookiesEnabledDefault(boolean aCookiesEnabledDefault)

Parameters

aCookiesEnabledDefault boolean
the cookiesEnabledDefault to set

isDefaultFollowRedirects

public static boolean isDefaultFollowRedirects()
Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects

Returns

the defaultFollowRedirects

setDefaultFollowRedirects

public static void setDefaultFollowRedirects(boolean aDefaultFollowRedirects)
Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects

Parameters

aDefaultFollowRedirects boolean
the defaultFollowRedirects to set

isReadTimeoutSupported

public static boolean isReadTimeoutSupported()
Checks if this platform supports read timeouts.

Returns

True if this connection supports read timeouts;

purgeCacheDirectory

public static void purgeCacheDirectory() throws IOException
Purges all locally cached files

getDefaultUserAgent

public static String getDefaultUserAgent()

Returns

the defaultUserAgent

setDefaultUserAgent

public static void setDefaultUserAgent(String aDefaultUserAgent)

Parameters

aDefaultUserAgent String
the defaultUserAgent to set

setUseNativeCookieStore

public static void setUseNativeCookieStore(boolean b)

Indicates whether the native Cookie stores should be used

NOTE: If the platform doesn’t support Native Cookie sharing, then this method will have no effect. Use #isNativeCookieSharingSupported()} to check if the platform supports native cookie sharing at runtime.

Parameters

b boolean
true to enable native cookie stores when applicable

isNativeCookieSharingSupported

public static boolean isNativeCookieSharingSupported()

Checks if the platform supports sharing cookies between the native components (e.g. BrowserComponent) and ConnectionRequests. Currently only iOS and Android support this.

If the platform does not support native cookie sharing, then methods like #setUseNativeCookieStore(boolean) will have no effect.

Returns

true if the platform supports native cookie sharing.

fetchJSON

public static Map<String, Object> fetchJSON(String url) throws IOException
Utility method that returns a JSON structure or throws an IOException in case of a failure. This method blocks the EDT legally and can be used synchronously. Notice that this method assumes all JSON data is UTF-8

Parameters

url String
the URL hosing the JSON

Returns

map data

Throws

IOException
in case of an error

fetchJSONAsync

public static AsyncResource<Map<String, Object>> fetchJSONAsync(String url)
Fetches JSON asynchronously.

Parameters

url String
The URL to fetch.

Returns

AsyncResource that will resolve with either an exception or the parsed JSON data.

getCacheMode

public ConnectionRequest.CachingMode getCacheMode()

There are 5 caching modes:

  • OFF is the default, meaning no caching.

  • SMART means all get requests are cached intelligently and caching is “mostly” seamless.

  • MANUAL means that the developer is responsible for the actual caching but the system will not do a request on a resource that’s already “fresh”.

  • OFFLINE will fetch data from the cache and wont try to go to the server. It will generate a 404 error if data isn’t available.

  • OFFLINE_FIRST works the same way as offline but if data isn’t available locally it will try to connect to the server.

Returns

the cacheMode

setCacheMode

public void setCacheMode(ConnectionRequest.CachingMode cacheMode)

There are 5 caching modes:

  • OFF is the default, meaning no caching.

  • SMART means all get requests are cached intelligently and caching is “mostly” seamless.

  • MANUAL means that the developer is responsible for the actual caching but the system will not do a request on a resource that’s already “fresh”.

  • OFFLINE will fetch data from the cache and wont try to go to the server. It will generate a 404 error if data isn’t available.

  • OFFLINE_FIRST works the same way as offline but if data isn’t available locally it will try to connect to the server.

Parameters

cacheMode ConnectionRequest.CachingMode
the cacheMode to set

isCheckSSLCertificates

public boolean isCheckSSLCertificates()

Returns

the checkSSLCertificates

setCheckSSLCertificates

public void setCheckSSLCertificates(boolean checkSSLCertificates)

Parameters

checkSSLCertificates boolean
the checkSSLCertificates to set

isInsecure

public boolean isInsecure()
Checks if the request is insecure (default false).

Returns

True if the request is insecure, i.e. does not check SSL certificate for validity.

setInsecure

public void setInsecure(boolean insecure)
Turns off checking to make sure that SSL certificate is valid.

getResponseData

public byte[] getResponseData()
This method will return a valid value for only some of the responses and only after the response was processed

Returns

null or the actual data returned

getHttpMethod

public String getHttpMethod()
Returns the http method

Returns

the http method of the request

setHttpMethod

public void setHttpMethod(String httpMethod)
Sets the http method for the request

Parameters

httpMethod String
the http method string

addRequestHeader

public void addRequestHeader(String key, String value)
Adds the given header to the request that will be sent

Parameters

key String
the header key
value String
the header value

removeRequestHeader

public void removeRequestHeader(String key)

Removes a header previously added with addRequestHeader(String, String).

Needed because a redirect reuses the same request object with the same headers: anything scoped to the original host has to be removable before the retry, or it follows the redirect to wherever it points.

removeRequestHeaderIfUnchanged

public void removeRequestHeaderIfUnchanged(String key, String value)

Removes a header previously added with addRequestHeader(String, String), but only while it still holds value.

A layer that decorates a request it does not own – an interceptor attaching a credential – has to take its header back off before the request is reused for somewhere else. By name alone that removes whatever is under the name by then, and the app itself gets a turn in between: onRedirect(String) runs between the response and the retry, and it is exactly where an app installs the headers the redirect target needs. If the two pick the same name, removing by name deletes the app’s credential rather than the decorator’s. The value is what tells them apart.

Parameters

key String
the header key, matched without regard to case as HTTP requires
value String
the value the header must still have; anything else is left alone

checkSSLCertificates

protected void checkSSLCertificates(ConnectionRequest.SSLCertificate[] certificates)

A callback that can be overridden by subclasses to check the SSL certificates for the server, and kill the connection if they don’t pass muster. This can be used for SSL pinning.

NOTE: This method will only be called if #isCheckSSLCertificates() is true and the platform supports SSL certificates (#canGetSSLCertificates().

WARNING: On iOS it is possible that certificates for a request would not be available even through the platform supports it, and checking certificates are enabled. This could happen if the certificates had been cached by the TLS cache by some network mechanism other than ConnectionRequest (e.g. native code, websockets, etc..). In such cases this method would receive an empty array as a parameter.

This is called after the SSL handshake, but before any data has been sent.

Parameters

certificates ConnectionRequest.SSLCertificate[]
The server’s SSL certificates.

getReadTimeout

public int getReadTimeout()
Gets the read timeout for this connection. This is only used if #isReadTimeoutSupported() is true on this platform. Currently Android, Mac Desktop, Windows Desktop, and Simulator supports read timeouts.

Returns

The read timeout.

setReadTimeout

public void setReadTimeout(int timeout)
Sets the read timeout for the connection. This is only used if #isReadTimeoutSupported() is true on this platform. Currently Android, Mac Desktop, Windows Desktop, and Simulator supports read timeouts.

Parameters

timeout int
The read timeout. If less than or equal to zero, then there is no timeout.

initConnection

protected void initConnection(Object connection)
Invoked to initialize HTTP headers, cookies etc.

Parameters

connection Object
the connection object

getCachedData

protected InputStream getCachedData() throws IOException
This method should be overriden in CacheMode.MANUAL to provide offline caching. The default implementation will work as expected in the CacheMode.SMART and CacheMode.OFFLINE_FIRST modes.

Returns

the offline cached data or null/exception if unavailable

purgeCache

public void purgeCache()
Deletes the cache file if it exists, notice that this will not work for download files

cacheUnmodified

protected void cacheUnmodified() throws IOException
This callback is invoked on a 304 server response indicating the data in the server matches the result we currently have in the cache. This method can be overriden to detect this case

cookieReceived

protected void cookieReceived(Cookie c)
Callback invoked for every cookie received from the server

Parameters

c Cookie
the cookie

cookieSent

protected void cookieSent(Cookie c)
Callback invoked for every cookie being sent to the server

Parameters

c Cookie
the cookie

initCookieHeader

protected String initCookieHeader(String cookie)
Allows subclasses to inject cookies into the request

Parameters

cookie String
the cookie that the implementation is about to send or null for no cookie

Returns

new cookie or the value of cookie

getResponseCode

public int getResponseCode()
Returns the response code for this request, this is only relevant after the request completed and might contain a temporary (e.g. redirect) code while the request is in progress

Returns

the response code

getResposeCode

public int getResposeCode()
Deprecated. misspelled method name please use getResponseCode
Returns the response code for this request, this is only relevant after the request completed and might contain a temporary (e.g. redirect) code while the request is in progress

Returns

the response code

shouldConvertPostToGetOnRedirect

protected boolean shouldConvertPostToGetOnRedirect()
This mimics the behavior of browsers that convert post operations to get operations when redirecting a request.

Returns

defaults to true, this case be modified by subclasses

readHeaders

protected void readHeaders(Object connection) throws IOException
Allows reading the headers from the connection by calling the getHeader() method.

Parameters

connection Object
used when invoking getHeader

Throws

java.io.IOException
thrown on failure

readErrorCodeHeaders

protected void readErrorCodeHeaders(Object connection) throws IOException
Allows reading the headers from the connection by calling the getHeader() method when a response that isn’t 200 OK is sent.

Parameters

connection Object
used when invoking getHeader

Throws

java.io.IOException
thrown on failure

getHeader

protected String getHeader(Object connection, String header) throws IOException
Returns the HTTP header field for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.

Parameters

connection Object
the connection to the network
header String
the name of the header

Returns

the value of the header

Throws

java.io.IOException
thrown on failure

getHeaders

protected String[] getHeaders(Object connection, String header) throws IOException
Returns the HTTP header field for the given connection, this method is only guaranteed to work when invoked from the readHeaders method. Unlike the getHeader method this version works when the same header name is declared multiple times.

Parameters

connection Object
the connection to the network
header String
the name of the header

Returns

the value of the header

Throws

java.io.IOException
thrown on failure

getHeaderFieldNames

protected String[] getHeaderFieldNames(Object connection) throws IOException
Returns the HTTP header field names for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.

Parameters

connection Object
the connection to the network

Returns

the names of the headers

Throws

java.io.IOException
thrown on failure

getYield

protected int getYield()
Returns the amount of time to yield for other processes, this is an implicit method that automatically generates values for lower priority connections

Returns

yield duration or -1 for no yield

shouldAutoCloseResponse

protected boolean shouldAutoCloseResponse()
Indicates whether the response stream should be closed automatically by the framework (defaults to true), this might cause an issue if the stream needs to be passed to a separate thread for reading.

Returns

true to close the response stream automatically.

handleIOException

protected void handleIOException(IOException err)
Handles IOException thrown when performing a network operation

Parameters

err IOException
the exception thrown

handleRuntimeException

protected void handleRuntimeException(RuntimeException err)
Handles an exception thrown when performing a network operation

Parameters

err RuntimeException
the exception thrown

handleException

protected void handleException(Exception err)
Handles an exception thrown when performing a network operation, the default implementation shows a retry dialog.

Parameters

err Exception
the exception thrown

canGetSSLCertificates

public boolean canGetSSLCertificates()
Checks to see if the platform supports getting SSL certificates.

Returns

True if the platform supports getting SSL certificates.

getSSLCertificates

public ConnectionRequest.SSLCertificate[] getSSLCertificates() throws IOException
Gets the server’s SSL certificates for this requests. If this connection request does not have any certificates available, it returns an array of size 0.

Returns

The server’s SSL certificates. If not available, an empty array.

handleErrorResponseCode

protected void handleErrorResponseCode(int code, String message)
Handles a server response code that is not 200 and not a redirect (unless redirect handling is disabled)

Parameters

code int
the response code from the server
message String
the response message from the server

retry

public void retry()
Retry the current operation in case of an exception

onRedirect

public boolean onRedirect(String url)
This is a callback method that been called when there is a redirect. IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects

Parameters

url String
the url to be redirected

Returns

true if the implementation would like to handle this by itself

readResponse

protected void readResponse(InputStream input) throws IOException
Callback for the server response with the input stream from the server. This method is invoked on the network thread

Parameters

input InputStream
the input stream containing the response

Throws

IOException
when a read input occurs

postResponse

protected void postResponse()
A callback method that’s invoked on the EDT after the readResponse() method has finished, this is the place where developers should change their Codename One user interface to avoid race conditions that might be triggered by modifications within readResponse. Notice this method is only invoked on a successful response and will not be invoked in case of a failure.

createRequestURL

protected String createRequestURL()
Creates the request URL mostly for a get request

Returns

the string of a request

buildRequestBody

protected void buildRequestBody(OutputStream os) throws IOException
Invoked when send body is true, by default sends the request arguments based on “POST” conventions

Parameters

os OutputStream
output stream of the body

shouldWriteUTFAsGetBytes

protected boolean shouldWriteUTFAsGetBytes()
Returns whether when writing a post body the platform expects something in the form of string.getBytes(“UTF-8”) or new OutputStreamWriter(os, “UTF-8”).

kill

public void kill()
Kills this request if possible

shouldStop

protected boolean shouldStop()
Returns true if the request is paused or killed, developers should call this method periodically to test whether they should quit the current IO operation immediately

Returns

true if the request is paused or killed

isPausable

protected boolean isPausable()
Return true from this method if this connection can be paused and resumed later on. A pausable network operation receives a “pause” invocation and is expected to stop network operations as soon as possible. It will later on receive a resume() call and optionally start downloading again.

Returns

false by default.

pause

public boolean pause()
Invoked to pause this opeation, this method will only be invoked if isPausable() returns true (its false by default). After this method is invoked current network operations should be stoped as soon as possible for this class.

Returns

This method can return false to indicate that there is no need to resume this method since the operation has already been completed or made redundant

resume

public boolean resume()
Called when a previously paused operation now has the networking time to resume. Assuming this method returns true, the network request will be resent to the server and the operation can resume.

Returns

This method can return false to indicate that there is no need to resume this method since the operation has already been completed or made redundant

isPost

public boolean isPost()
Returns true for a post operation and false for a get operation

Returns

the post

setPost

public void setPost(boolean post)
Set to true for a post operation and false for a get operation, this will implicitly set the method to post/get respectively (which you can change back by setting the method). The main importance of this method is how arguments are added to the request (within the body or in the URL) and so it is important to invoke this method before any argument was added.

Throws

IllegalStateException
if invoked after an addArgument call

addArgument

public void addArgument(String key, byte[] value)
Deprecated. use the version that accepts a string instead
Add an argument to the request response

Parameters

key String
the key of the argument
value byte[]
the value for the argument

removeArgument

public void removeArgument(String key)
Removes the given argument from the request

Parameters

key String
the key of the argument no longer used

removeAllArguments

public void removeAllArguments()
Removes all arguments

addArgumentNoEncoding

public void addArgumentNoEncoding(String key, String value)
Add an argument to the request response without encoding it, this is useful for arguments which are already encoded

Parameters

key String
the key of the argument
value String
the value for the argument

addArgumentNoEncoding

public void addArgumentNoEncoding(String key, String[] value)
Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key, notice that this doesn’t implicitly encode the value

Parameters

key String
the key of the argument
value String[]
the value for the argument

addArgumentNoEncodingArray

public void addArgumentNoEncodingArray(String key, String... value)
Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key, notice that this doesn’t implicitly encode the value

Parameters

key String
the key of the argument
value String...
the value for the argument

addArgument

public void addArgument(String key, String value)
Add an argument to the request response

Parameters

key String
the key of the argument
value String
the value for the argument

addArgumentArray

public void addArgumentArray(String key, String... value)
Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key

Parameters

key String
the key of the argument
value String...
the value for the argument

addArgument

public void addArgument(String key, String[] value)
Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key

Parameters

key String
the key of the argument
value String[]
the value for the argument

addArguments

public void addArguments(String key, String... value)
Add an argument to the request response as an array of elements, this will trigger multiple request entries with the same key

Parameters

key String
the key of the argument
value String...
the value for the argument

getContentType

public String getContentType()

Returns

the contentType

setContentType

public void setContentType(String contentType)

Parameters

contentType String
the contentType to set

isWriteRequest

public boolean isWriteRequest()

Returns

the writeRequest

setWriteRequest

public void setWriteRequest(boolean writeRequest)

Parameters

writeRequest boolean
the writeRequest to set

isReadRequest

public boolean isReadRequest()

Returns

the readRequest

setReadRequest

public void setReadRequest(boolean readRequest)

Parameters

readRequest boolean
the readRequest to set

isPaused

protected boolean isPaused()

Returns

the paused

setPaused

protected void setPaused(boolean paused)

Parameters

paused boolean
the paused to set

isKilled

protected boolean isKilled()

Returns

the killed

setKilled

protected void setKilled(boolean killed)

Parameters

killed boolean
the killed to set

getPriority

public byte getPriority()
The priority of this connection based on the constants in this class

Returns

the priority

setPriority

public void setPriority(byte priority)
The priority of this connection based on the constants in this class

Parameters

priority byte
the priority to set

getUserAgent

public String getUserAgent()

Returns

the userAgent

setUserAgent

public void setUserAgent(String userAgent)

Parameters

userAgent String
the userAgent to set

isFollowRedirects

public boolean isFollowRedirects()
Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects

Returns

the followRedirects

setFollowRedirects

public void setFollowRedirects(boolean followRedirects)
Enables/Disables automatic redirects globally and returns the 302 error code, IMPORTANT this feature doesn’t work on all platforms and currently doesn’t work on iOS which always implicitly redirects

Parameters

followRedirects boolean
the followRedirects to set

getTimeout

public int getTimeout()
Indicates the timeout for this connection request

Returns

the timeout

setTimeout

public void setTimeout(int timeout)
Indicates the timeout for this connection request

Parameters

timeout int
the timeout to set

getContentLength

public int getContentLength()
Returns the content length header value

Returns

the content length

ioStreamUpdate

public void ioStreamUpdate(Object source, int bytes)
Indicates the number of bytes that were read/written to/from the source stream

Parameters

source Object
the source stream which can be either an input stream or an output stream
bytes int
the number of bytes read or written

getUrl

public String getUrl()

Returns

the url

setUrl

public void setUrl(String url)

Parameters

url String
the url to set

addResponseListener

public void addResponseListener(ActionListener<NetworkEvent> a)
Adds a listener that would be notified on the CodenameOne thread of a response from the server. This event is specific to the connection request type and its firing will change based on how the connection request is read/processed

Parameters

a ActionListener<NetworkEvent>
listener

removeResponseListener

public void removeResponseListener(ActionListener<NetworkEvent> a)
Removes the given listener

Parameters

a ActionListener<NetworkEvent>
listener

addResponseCodeListener

public void addResponseCodeListener(ActionListener<NetworkEvent> a)
Adds a listener that would be notified on the CodenameOne thread of a response code that is not a 200 (OK) or 301/2 (redirect) response code.

Parameters

a ActionListener<NetworkEvent>
listener

addExceptionListener

public void addExceptionListener(ActionListener<NetworkEvent> a)
Adds a listener that would be notified on the CodenameOne thread of an exception in this connection request

Parameters

a ActionListener<NetworkEvent>
listener

removeResponseCodeListener

public void removeResponseCodeListener(ActionListener<NetworkEvent> a)
Removes the given listener

Parameters

a ActionListener<NetworkEvent>
listener

removeExceptionListener

public void removeExceptionListener(ActionListener<NetworkEvent> a)
Removes the given listener

Parameters

a ActionListener<NetworkEvent>
listener

hasResponseListeners

protected boolean hasResponseListeners()
Returns true if someone is listening to action response events, this is useful so we can decide whether to bother collecting data for an event in some cases since building the event object might be memory/CPU intensive.

Returns

true or false

fireResponseListener

protected void fireResponseListener(ActionEvent ev)
Fires the response event to the listeners on this connection

Parameters

ev ActionEvent
the event to fire

isDuplicateSupported

public boolean isDuplicateSupported()
Indicates whether this connection request supports duplicate entries in the request queue

Returns

the duplicateSupported value

setDuplicateSupported

public void setDuplicateSupported(boolean duplicateSupported)
Indicates whether this connection request supports duplicate entries in the request queue

Parameters

duplicateSupported boolean
the duplicateSupported to set

hashCode

public int hashCode()
Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)

equals

public boolean equals(Object o)
Indicates whether some other object is “equal to” this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true).

validate

protected void validate()
Validates that the request has the required information before being added to the queue e.g. checks if the URL is null. This method should throw an IllegalStateException for a case where one of the values required for this connection request is missing. This method can be overriden by subclasses to add additional tests. It is usefull to do tests here since the exception will be thrown immediately when invoking addToQueue which is more intuitive to debug than the alternative.

getDisposeOnCompletion

public Dialog getDisposeOnCompletion()
A dialog that will be seamlessly disposed once the given request has been completed

Returns

the disposeOnCompletion

setDisposeOnCompletion

public void setDisposeOnCompletion(Dialog disposeOnCompletion)
A dialog that will be seamlessly disposed once the given request has been completed

Parameters

disposeOnCompletion Dialog
the disposeOnCompletion to set

getShowOnInit

public Dialog getShowOnInit()
This dialog will be shown when this request enters the network queue

Returns

the showOnInit

setShowOnInit

public void setShowOnInit(Dialog showOnInit)
This dialog will be shown when this request enters the network queue

Parameters

showOnInit Dialog
the showOnInit to set

getSilentRetryCount

public int getSilentRetryCount()
Indicates the number of times to silently retry a connection that failed before prompting

Returns

the silentRetryCount

setSilentRetryCount

public void setSilentRetryCount(int silentRetryCount)
Indicates the number of times to silently retry a connection that failed before prompting

Parameters

silentRetryCount int
the silentRetryCount to set

isFailSilently

public boolean isFailSilently()
Indicates that we are uninterested in error handling

Returns

the failSilently

setFailSilently

public void setFailSilently(boolean failSilently)
Indicates that we are uninterested in error handling

Parameters

failSilently boolean
the failSilently to set

isReadResponseForErrors

public boolean isReadResponseForErrors()
When set to true the read response code will happen even for error codes such as 400 and 500

Returns

the readResponseForErrors

setReadResponseForErrors

public void setReadResponseForErrors(boolean readResponseForErrors)
When set to true the read response code will happen even for error codes such as 400 and 500

Parameters

readResponseForErrors boolean
the readResponseForErrors to set

getResponseContentType

public String getResponseContentType()
Returns the content type from the response headers

Returns

the content type

isRedirecting

public boolean isRedirecting()
Returns true if this request is been redirected to a different url

Returns

true if redirecting

getDestinationFile

public String getDestinationFile()
When set to a none null string saves the response to file system under this file name

Returns

the destinationFile

setDestinationFile

public void setDestinationFile(String destinationFile)
When set to a none null string saves the response to file system under this file name

Parameters

destinationFile String
the destinationFile to set

getDestinationStorage

public String getDestinationStorage()
When set to a none null string saves the response to storage under this file name

Returns

the destinationStorage

setDestinationStorage

public void setDestinationStorage(String destinationStorage)
When set to a none null string saves the response to storage under this file name

Parameters

destinationStorage String
the destinationStorage to set

isCookiesEnabled

public boolean isCookiesEnabled()

Returns

the cookiesEnabled

setCookiesEnabled

public void setCookiesEnabled(boolean cookiesEnabled)

Parameters

cookiesEnabled boolean
the cookiesEnabled to set

setChunkedStreamingMode

public void setChunkedStreamingMode(int chunklen)
This method is used to enable streaming of a HTTP request body without internal buffering, when the content length is not known in advance. In this mode, chunked transfer encoding is used to send the request body. Note, not all HTTP servers support this mode. This mode is supported on Android and the Desktop ports.

Parameters

chunklen int
The number of bytes to write in each chunk. If chunklen is zero a default value will be used.

downloadImageToStorage

public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail, boolean useCache)
Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

storageFile String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
onFail FailureCallback<Image>
Callback called if we fail to load the image.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

downloadImageToStorage

public AsyncResource<Image> downloadImageToStorage(String storageFile)
Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image..

Parameters

storageFile String
The storage file where the file should be saved.

Returns

AsyncResource that will resolve to the loaded image.

downloadImageToStorage

public AsyncResource<Image> downloadImageToStorage(String storageFile, boolean useCache)
Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image.. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

storageFile String
The storage file where the file should be saved.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

Returns

AsyncResource that will resolve to the loaded image.

downloadImageToStorage

public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, boolean useCache)
Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

storageFile String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

downloadImageToStorage

public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess)
Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image. This will first try to load the image from Storage if it exists.

Parameters

storageFile String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.

downloadImageToStorage

public void downloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail)
Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image. This will first try to load the image from Storage if it exists.

Parameters

storageFile String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
onFail FailureCallback<Image>
Not documented.

downloadImageToFileSystem

public AsyncResource<Image> downloadImageToFileSystem(String file, boolean useCache)
Downloads an image to a the file system asynchronously returning an AsyncResource object that resolves to the loaded image.. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

file String
The storage file where the file should be saved.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

Returns

AsyncResource resolving to the downloaded image.

downloadImageToFileSystem

public AsyncResource<Image> downloadImageToFileSystem(String file)
Downloads an image to the file system asynchronously returning an AsyncResource object that resolves to the loaded image.. If useCache is true, then this will first try to load the image from Storage if it exists. This is a wrapper around boolean) with true as the 2nd parameter.

Parameters

file String
The storage file where the file should be saved.

Returns

AsyncResource resolving to the downloaded image.

downloadImageToFileSystem

public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail, boolean useCache)
Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

file String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
onFail FailureCallback<Image>
Callback called if we fail to load the image.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

downloadImageToFileSystem

public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, boolean useCache)
Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image. If useCache is true, then this will first try to load the image from Storage if it exists.

Parameters

file String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
useCache boolean
If true, then this will first check the storage to see if the image is already downloaded.

downloadImageToFileSystem

public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess)
Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image. This will first try to load the image from Storage if it exists.

Parameters

file String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.

downloadImageToFileSystem

public void downloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, FailureCallback<Image> onFail)
Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image. This will first try to load the image from Storage if it exists.

Parameters

file String
The storage file where the file should be saved.
onSuccess SuccessCallback<Image>
Callback called if the image is successfully loaded.
onFail FailureCallback<Image>
Callback called if the image fails to load.

getRequestBody

public String getRequestBody()
The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments

Returns

the requestBody

setRequestBody

public void setRequestBody(String requestBody)

The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments.

Notice that invoking this method blocks the #buildRequestBody(java.io.OutputStream) method callback.

Parameters

requestBody String
a string to pass in the post body

setRequestBody

public void setRequestBody(Data data)

The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments.

Notice that invoking this method blocks the #buildRequestBody(java.io.OutputStream) method callback.

Parameters

data Data
a data to pass in the post body

getRequestBodyData

public Data getRequestBodyData()
The request body can be used instead of arguments to pass JSON data to a restful request, it can’t be used in a get request and will fail if you have arguments

Returns

the requestBody

getResponseErrorMessage

public String getResponseErrorMessage()
Returns error message associated with an error response code

Returns

the system error message