Class RSSService
- All Implemented Interfaces:
IOProgressListener, ParserCallback
-
Nested Class Summary
Nested classes/interfaces inherited from class ConnectionRequest
ConnectionRequest.CachingMode, ConnectionRequest.SSLCertificateModifier and TypeClassDescriptionstatic enumThere are 5 caching modes:static final classEncapsulates an SSL certificate fingerprint. -
Field Summary
Fields inherited from class ConnectionRequest
PRIORITY_CRITICAL, PRIORITY_HIGH, PRIORITY_LOW, PRIORITY_NORMAL, PRIORITY_REDUNDANTModifier and TypeFieldDescriptionstatic final byteA 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.static final byteA high priority request is the second highest level, it will act exactly like a critical priority with one difference.static final byteLow priority requests are mostly background tasks that should still be accomplished thoughstatic final byteNormal priority executes as usual on the queuestatic final byteRedundant elements can be discarded from the queue when pausedFields inherited from interface ParserCallback
ERROR_ATTIBUTE_VALUE_INVALID, ERROR_ATTRIBUTE_NOT_SUPPORTED, ERROR_ENCODING, ERROR_MULTIPLE_ROOTS, ERROR_NO_CLOSE_TAG, ERROR_NO_ROOTS, ERROR_TAG_NOT_SUPPORTED, ERROR_UNEXPECTED_CHARACTER, ERROR_UNEXPECTED_TAG_CLOSING, ERROR_UNRECOGNIZED_CHAR_ENTITYModifier and TypeFieldDescriptionstatic final intError code denoting that an invalid attribute value was found in the XMLstatic final intError code denoting that an unsupported attribute was found in the XMLstatic final intError code denoting that the encoding the page needed according to its charset (usually specified in the content-type response header) is unsupported in the devicestatic final intError code denoting that the document had more than one root elementstatic final intError code denoting that a tag was not closed properly in the XMLstatic final intError code denoting that the document had no root element at all (empty document or seriously malformed XML)static final intError code denoting that an unsupported tag was found in the XMLstatic final intError code denoting that the parser bumped into an unexpected characterstatic final intError code denoting that a tag was not closed prematurelystatic final intError code denoting that an invalid character entity was found A character entity is XML codes that start with an ampersand and end with semicolon and denote special/reserved chars -
Constructor Summary
ConstructorsConstructorDescriptionRSSService(String url) Simple constructor accepting the RSS urlRSSService(String url, int limit) Simple constructor accepting the RSS urlRSSService(String url, int limit, int startOffset) Simple constructor accepting the RSS url -
Method Summary
Modifier and TypeMethodDescriptionbooleanIndicates whether some other object is "equal to" this one.Returns
The results are presented as a vector of hashtables easily presentable in Codename OneinthashCode()Returns a hash code value for the object.booleanhasMore()Indicates whether more entries might be available since the limt might have been reachedbooleanCreates an additional "details" attribute in the resulting hashtables which effectively contains a plain text version of the description tag.booleanparsingError(int errorId, String tag, String attribute, String value, String description) Called when encountering an error while parsing the XML document.protected voidreadResponse(InputStream input) Callback for the server response with the input stream from the server.voidsetCreatePlainTextDetails(boolean createPlainTextDetails) Creates an additional "details" attribute in the resulting hashtables which effectively contains a plain text version of the description tag.voidsetIconPlaceholder(Image iconPlaceholder) Parameters
Methods inherited from class ConnectionRequest
addArgument, addArgument, addArgument, addArgumentArray, addArgumentNoEncoding, addArgumentNoEncoding, addArgumentNoEncodingArray, addArguments, addExceptionListener, addRequestHeader, addResponseCodeListener, addResponseListener, buildRequestBody, cacheUnmodified, canGetSSLCertificates, checkSSLCertificates, cookieReceived, cookieSent, createRequestURL, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToFileSystem, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, downloadImageToStorage, fetchJSON, fetchJSONAsync, fireResponseListener, getCachedData, getCacheMode, getContentLength, getContentType, getCookieHeader, getDefaultCacheMode, getDefaultUserAgent, getDestinationFile, getDestinationStorage, getDisposeOnCompletion, getHeader, getHeaderFieldNames, getHeaders, getHttpMethod, getPriority, getReadTimeout, getRequestBody, getRequestBodyData, getResponseCode, getResponseContentType, getResponseData, getResponseErrorMessage, getResposeCode, getShowOnInit, getSilentRetryCount, getSSLCertificates, getTimeout, getUrl, getUserAgent, getYield, handleErrorResponseCode, handleException, handleIOException, handleRuntimeException, hasResponseListeners, initConnection, initCookieHeader, ioStreamUpdate, isCheckSSLCertificates, isCookiesEnabled, isCookiesEnabledDefault, isDefaultFollowRedirects, isDuplicateSupported, isFailSilently, isFollowRedirects, isHandleErrorCodesInGlobalErrorHandler, isInsecure, isKilled, isNativeCookieSharingSupported, isPausable, isPaused, isPost, isReadRequest, isReadResponseForErrors, isReadResponseForErrorsDefault, isReadTimeoutSupported, isRedirecting, isWriteRequest, kill, onRedirect, pause, postResponse, purgeCache, purgeCacheDirectory, readErrorCodeHeaders, readHeaders, removeAllArguments, removeArgument, removeExceptionListener, removeResponseCodeListener, removeResponseListener, resume, retry, setCacheMode, setCheckSSLCertificates, setChunkedStreamingMode, setContentType, setCookieHeader, setCookiesEnabled, setCookiesEnabledDefault, setDefaultCacheMode, setDefaultFollowRedirects, setDefaultUserAgent, setDestinationFile, setDestinationStorage, setDisposeOnCompletion, setDuplicateSupported, setFailSilently, setFollowRedirects, setHandleErrorCodesInGlobalErrorHandler, setHttpMethod, setInsecure, setKilled, setPaused, setPost, setPriority, setReadRequest, setReadResponseForErrors, setReadResponseForErrorsDefault, setReadTimeout, setRequestBody, setRequestBody, setShowOnInit, setSilentRetryCount, setTimeout, setUrl, setUseNativeCookieStore, setUserAgent, setWriteRequest, shouldAutoCloseResponse, shouldConvertPostToGetOnRedirect, shouldStop, shouldWriteUTFAsGetBytes, validateModifier and TypeMethodDescriptionvoidaddArgument(String key, byte[] value) Add an argument to the request responsevoidaddArgument(String key, String value) Add an argument to the request responsevoidaddArgument(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 keyvoidaddArgumentArray(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 keyvoidaddArgumentNoEncoding(String key, String value) Add an argument to the request response without encoding it, this is useful for arguments which are already encodedvoidaddArgumentNoEncoding(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 valuevoidaddArgumentNoEncodingArray(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 valuevoidaddArguments(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 keyvoidAdds a listener that would be notified on the CodenameOne thread of an exception in this connection requestvoidaddRequestHeader(String key, String value) Adds the given header to the request that will be sentvoidAdds 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.voidAdds a listener that would be notified on the CodenameOne thread of a response from the server.protected voidInvoked when send body is true, by default sends the request arguments based on "POST" conventionsprotected voidThis callback is invoked on a 304 server response indicating the data in the server matches the result we currently have in the cache.booleanChecks to see if the platform supports getting SSL certificates.protected voidcheckSSLCertificates(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.protected voidCallback invoked for every cookie received from the serverprotected voidcookieSent(Cookie c) Callback invoked for every cookie being sent to the serverprotected StringCreates the request URL mostly for a get requestDownloads an image to the file system asynchronously returning an AsyncResource object that resolves to the loaded 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..voiddownloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess) Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.voiddownloadImageToFileSystem(String file, SuccessCallback<Image> onSuccess, boolean useCache) Downloads an image to a the file system asynchronously and calls the onSuccessCallback with the resulting image.voiddownloadImageToFileSystem(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.voiddownloadImageToFileSystem(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.downloadImageToStorage(String storageFile) Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image..downloadImageToStorage(String storageFile, boolean useCache) Downloads an image to a specified storage file asynchronously returning an AsyncResource that resolves to the resulting image..voiddownloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess) Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.voiddownloadImageToStorage(String storageFile, SuccessCallback<Image> onSuccess, boolean useCache) Downloads an image to a specified storage file asynchronously and calls the onSuccessCallback with the resulting image.voiddownloadImageToStorage(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.voiddownloadImageToStorage(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.Utility method that returns a JSON structure or throws an IOException in case of a failure.static AsyncResource<Map<String, Object>> fetchJSONAsync(String url) Fetches JSON asynchronously.protected voidFires the response event to the listeners on this connectionprotected InputStreamThis method should be overriden inCacheMode.MANUALto provide offline caching.There are 5 caching modes:intReturns the content length header valueReturns
static StringWorkaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to CookieThe default value for the cacheMode property see#getCacheMode()static StringReturns
When set to a none null string saves the response to file system under this file nameWhen set to a none null string saves the response to storage under this file nameA dialog that will be seamlessly disposed once the given request has been completedprotected StringReturns 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) Returns the HTTP header field names for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.protected String[]getHeaders(Object connection, String header) Returns the HTTP header field for the given connection, this method is only guaranteed to work when invoked from the readHeaders method.Returns the http methodbyteThe priority of this connection based on the constants in this classintGets the read timeout for this connection.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 argumentsThe 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 argumentsintReturns 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 progressReturns the content type from the response headersbyte[]This method will return a valid value for only some of the responses and only after the response was processedReturns error message associated with an error response codeintReturns 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 progressThis dialog will be shown when this request enters the network queueintIndicates the number of times to silently retry a connection that failed before promptingGets the server's SSL certificates for this requests.intIndicates the timeout for this connection requestgetUrl()Returns
Returns
protected intgetYield()Returns the amount of time to yield for other processes, this is an implicit method that automatically generates values for lower priority connectionsprotected voidhandleErrorResponseCode(int code, String message) Handles a server response code that is not 200 and not a redirect (unless redirect handling is disabled)protected voidhandleException(Exception err) Handles an exception thrown when performing a network operation, the default implementation shows a retry dialog.protected voidHandles IOException thrown when performing a network operationprotected voidHandles an exception thrown when performing a network operationprotected booleanReturns 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 voidinitConnection(Object connection) Invoked to initialize HTTP headers, cookies etc.protected StringinitCookieHeader(String cookie) Allows subclasses to inject cookies into the requestvoidioStreamUpdate(Object source, int bytes) Indicates the number of bytes that were read/written to/from the source streambooleanReturns
booleanReturns
static booleanReturns
static booleanEnables/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 redirectsbooleanIndicates whether this connection request supports duplicate entries in the request queuebooleanIndicates that we are uninterested in error handlingbooleanEnables/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 redirectsstatic booleanWhen set to true (the default), the global error handler inNetworkManagershould receive errors for response code as wellbooleanChecks if the request is insecure (default false).protected booleanisKilled()Returns
static booleanChecks if the platform supports sharing cookies between the native components (e.g. BrowserComponent) and ConnectionRequests.protected booleanReturn true from this method if this connection can be paused and resumed later on.protected booleanisPaused()Returns
booleanisPost()Returns true for a post operation and false for a get operationbooleanReturns
booleanWhen set to true the read response code will happen even for error codes such as 400 and 500static booleanDetermines the default value for#isReadResponseForErrors()static booleanChecks if this platform supports read timeouts.booleanReturns true if this request is been redirected to a different urlbooleanReturns
voidkill()Kills this request if possiblebooleanonRedirect(String url) This is a callback method that been called when there is a redirect.booleanpause()Invoked to pause this opeation, this method will only be invoked if isPausable() returns true (its false by default).protected voidA 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.voidDeletes the cache file if it exists, notice that this will not work for download filesstatic voidPurges all locally cached filesprotected voidreadErrorCodeHeaders(Object connection) Allows reading the headers from the connection by calling the getHeader() method when a response that isn't 200 OK is sent.protected voidreadHeaders(Object connection) Allows reading the headers from the connection by calling the getHeader() method.voidRemoves all argumentsvoidremoveArgument(String key) Removes the given argument from the requestvoidRemoves the given listenervoidRemoves the given listenervoidRemoves the given listenerbooleanresume()Called when a previously paused operation now has the networking time to resume.voidretry()Retry the current operation in case of an exceptionvoidsetCacheMode(ConnectionRequest.CachingMode cacheMode) There are 5 caching modes:voidsetCheckSSLCertificates(boolean checkSSLCertificates) Parameters
voidsetChunkedStreamingMode(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.voidsetContentType(String contentType) Parameters
static voidsetCookieHeader(String aCookieHeader) Workaround for https://bugs.php.net/bug.php?id=65633 allowing developers to customize the name of the cookie header to CookievoidsetCookiesEnabled(boolean cookiesEnabled) Parameters
static voidsetCookiesEnabledDefault(boolean aCookiesEnabledDefault) Parameters
static voidsetDefaultCacheMode(ConnectionRequest.CachingMode aDefaultCacheMode) The default value for the cacheMode property see#getCacheMode()static voidsetDefaultFollowRedirects(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 redirectsstatic voidsetDefaultUserAgent(String aDefaultUserAgent) Parameters
voidsetDestinationFile(String destinationFile) When set to a none null string saves the response to file system under this file namevoidsetDestinationStorage(String destinationStorage) When set to a none null string saves the response to storage under this file namevoidsetDisposeOnCompletion(Dialog disposeOnCompletion) A dialog that will be seamlessly disposed once the given request has been completedvoidsetDuplicateSupported(boolean duplicateSupported) Indicates whether this connection request supports duplicate entries in the request queuevoidsetFailSilently(boolean failSilently) Indicates that we are uninterested in error handlingvoidsetFollowRedirects(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 redirectsstatic voidsetHandleErrorCodesInGlobalErrorHandler(boolean aHandleErrorCodesInGlobalErrorHandler) When set to true (the default), the global error handler inNetworkManagershould receive errors for response code as wellvoidsetHttpMethod(String httpMethod) Sets the http method for the requestvoidsetInsecure(boolean insecure) Turns off checking to make sure that SSL certificate is valid.protected voidsetKilled(boolean killed) Parameters
protected voidsetPaused(boolean paused) Parameters
voidsetPost(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).voidsetPriority(byte priority) The priority of this connection based on the constants in this classvoidsetReadRequest(boolean readRequest) Parameters
voidsetReadResponseForErrors(boolean readResponseForErrors) When set to true the read response code will happen even for error codes such as 400 and 500static voidsetReadResponseForErrorsDefault(boolean aReadResponseForErrorsDefault) Determines the default value for#setReadResponseForErrors(boolean)voidsetReadTimeout(int timeout) Sets the read timeout for the connection.voidsetRequestBody(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.voidsetRequestBody(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.voidsetShowOnInit(Dialog showOnInit) This dialog will be shown when this request enters the network queuevoidsetSilentRetryCount(int silentRetryCount) Indicates the number of times to silently retry a connection that failed before promptingvoidsetTimeout(int timeout) Indicates the timeout for this connection requestvoidParameters
static voidsetUseNativeCookieStore(boolean b) Indicates whether the native Cookie stores should be usedvoidsetUserAgent(String userAgent) Parameters
voidsetWriteRequest(boolean writeRequest) Parameters
protected booleanIndicates 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 booleanThis mimics the behavior of browsers that convert post operations to get operations when redirecting a request.protected booleanReturns true if the request is paused or killed, developers should call this method periodically to test whether they should quit the current IO operation immediatelyprotected booleanReturns whether when writing a post body the platform expects something in the form of string.getBytes("UTF-8") or new OutputStreamWriter(os, "UTF-8").protected voidvalidate()Validates that the request has the required information before being added to the queue e.g.Methods inherited from class Object
clone, getClass, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()final ClassgetClass()Returns the runtime class of an object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes current thread to wait until another thread invokes the method or the method for this object.final voidwait(long timeout) Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.final voidwait(long timeout, int nanos) Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
-
Constructor Details
-
RSSService
Simple constructor accepting the RSS url
Parameters
url: rss link
-
RSSService
Simple constructor accepting the RSS url
Parameters
-
url: rss link -
limit: the limit on the number of RSS entries supported
-
-
RSSService
Simple constructor accepting the RSS url
Parameters
-
url: rss link -
limit: the limit on the number of RSS entries supported -
startOffset: @param startOffset indicates the entry offset which we are interested in, this is useful if previously the limit for RSS entries was reached.
-
-
-
Method Details
-
equals
Description copied from class:ConnectionRequestIndicates 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).- Overrides:
equalsin classConnectionRequest
-
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.)- Overrides:
hashCodein classConnectionRequest
-
readResponse
Callback for the server response with the input stream from the server. This method is invoked on the network thread
Parameters
input: the input stream containing the response
Throws
IOException: when a read input occurs
- Overrides:
readResponsein classConnectionRequest- Throws:
IOException
-
getResults
The results are presented as a vector of hashtables easily presentable in Codename One
Returns
vector of hashtables
-
parsingError
public boolean parsingError(int errorId, String tag, String attribute, String value, String description) Called when encountering an error while parsing the XML document. When implementing this, the developer should return true if the error should be ignored and the document needs to be further parsed, or false to stop parsing and issue an error to the user Note that this method is always called NOT on the EDT thread.
Parameters
-
errorId: The error ID, one of the ERROR_* constants -
tag: The tag in which the error occured (Can be null for non-tag related errors) -
attribute: The attribute in which the error occured (Can be null for non-attribute related errors) -
value: The value in which the error occured (Can be null for non-value related errors) -
description: A verbal description of the error
Returns
true to continue parsing, false to stop
- Specified by:
parsingErrorin interfaceParserCallback
-
-
hasMore
public boolean hasMore()Indicates whether more entries might be available since the limt might have been reached
Returns
the hasMore
-
isCreatePlainTextDetails
public boolean isCreatePlainTextDetails()Creates an additional "details" attribute in the resulting hashtables which effectively contains a plain text version of the description tag.
Returns
the createPlainTextDetails
-
setCreatePlainTextDetails
public void setCreatePlainTextDetails(boolean createPlainTextDetails) Creates an additional "details" attribute in the resulting hashtables which effectively contains a plain text version of the description tag.
Parameters
createPlainTextDetails: the createPlainTextDetails to set
-
getIconPlaceholder
Returns
the iconPlaceholder
-
setIconPlaceholder
Parameters
iconPlaceholder: the iconPlaceholder to set
-