Help - Search - Members - Calendar
Full Version: Http Connection
OESF Forums > Distros, Development, and Model Specific Forums > Everything Development > Personal Java/Jeode/J2ME Personal Profile
yhat
Hi! Currently I'm developing an application which will deal with the http connection. For the http connection, I will send out my request to download an image. The problem I'm facing right now is when there's no response back for my request, my whole application is hang. I totally unable to exit the application and need to reset the device all the time. Here, I would like to ask whether is there anyone can help me to handle the no response back for the http connection. I'm using the below method for my http connection.

HttpConnection connection = null;
connection = (HttpConnection)Connector.open(url,Connector.READ_WRITE);
DataInputStream iStrm = connection.openDataInputStream();
ByteArrayOutputStream mSrm = null;
int length = (int) connection.getLength();
mData = new byte[length]; mSrm.readFully(mData);

After opening the connector, I need to close the connector when receiving the response back from my request. If there's no response back, my connector is always open and this cause my application hang.

Is there way to close the connector if there's no response back from the request made to http connection?

Please help....


YHat
Omicron
QUOTE(yhat @ Jun 9 2006, 05:45 AM)
Hi! Currently I'm developing an application which will deal with the http connection. For the http connection, I will send out my request to download an image. The problem I'm facing right now is when there's no response back for my request, my whole application is hang. I totally unable to exit the application and need to reset the device all the time. Here, I would like to ask whether is there anyone can help me to handle the no response back for the http connection. I'm using the below method for my http connection.

HttpConnection connection = null;
connection = (HttpConnection)Connector.open(url,Connector.READ_WRITE);
DataInputStream iStrm = connection.openDataInputStream();
ByteArrayOutputStream mSrm = null;
int length = (int) connection.getLength();
mData = new byte[length];    mSrm.readFully(mData);

After opening the connector, I need to close the connector when receiving the response back from my request. If there's no response back, my connector is always open and this cause my application hang.

Is there way to close the connector if there's no response back from the request made to http connection?

Please help....


YHat
*



First of all. I am quoting Java 1.5, so some of this may or may not be applicable.

However, the docs for 1.5 are here:
http://java.sun.com/j2se/1.5.0/docs/api/

I ussually use HttpURLConnection and not HttpConnection, so I am not sure of the differences since 1.5 has no HttpConnection class per se.

ANyway, I think the problem is in the URL class anyway, but upon searching the URL class I came up with nothing, however that lead me to loo at the URLConnection class (sorry, not sure how URLCOnnection Class and URL class work together) and I found this:

URLConnection.setConnectTimeout(int timeout)
Sets a specified timeout value, in milliseconds, to be used when opening a communications link to the resource referenced by this URLConnection.

My guess is that there is already a timeout on your connection but it is probably 2 or more minutes long, which of course is too much for you needs.

Anyway, this should give you a start, but you may need to upgrade to a FULL 1.5 implementation to use these classes (though there may very well be a similar funcatioanilty is the J2ME libs).

Regards.
Meanie
what you need to do is create a new thread and call http connection in the new thread. this way you can have multiple concurrent downloads happening as well as controls to terminate or interrupt each of those threads individually. you might also want to tie a progressbar to each of those threads for a visual effect showing the progress of the downloads, but you will probably need to implement swing worker pattern which may not be available to you depending on the version of the jvm you are running, ie has to be > 1.2.x
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.