Hey Guru's,
I am somewhat new to bb development although I'v been coding in other languages for a long time. I have a blackberry app that I made the fetches from the web some data (to display to the user).
The problem is sometimes the request to the web for information doesn't work. This could be anything from them being out of the service area, packet loss, I dunno. But sometimes it just doesn't return any data. I close the app and retry and then it magically works.
So, I am wondering what is wrong with my code below. I found it on the web and it appeared to check for issues. However, I have never seen any error messages pop up when data wasn't returned.
I did notice the connection timeout was set to 120000 (2 minutes I believe)... seems a bit high.
I appreciate any advice you can give.
Code:
try {
HttpConnection c = null;
InputStream is = null;
int rc;
try {
c = (HttpConnection)Connector.open("http://myurl/getData.asp?id=123;ConnectionTimeout=120000;deviceside=false");
rc = c.getResponseCode();
if (rc != HttpConnection.HTTP_OK) {
Dialog.alert("There was a problem downloading the ticket info.");
throw new IOException("HTTP response code: " + rc);
}
is = c.openInputStream();
// Get the ContentType
String type = c.getType();
// Get the length and process the data
int len = (int)c.getLength();
int ch;
StringBuffer sb = new StringBuffer();
while ((ch = is.read()) != -1) {
sb.append((char)ch);
}
} catch (ClassCastException e) {
Dialog.alert("There was a problem downloading the ticket info.");
throw new IllegalArgumentException("Not an HTTP URL");
} catch (InterruptedIOException e) {
Dialog.alert("There was a problem downloading the ticket info!");
throw new IllegalArgumentException("Connection timed out!");
} finally {
if (is != null)
is.close();
if (c != null)
c.close();
}
} catch (IOException e) {
} catch (Exception e)
{
e.printStackTrace();
}