OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Http Connection
yhat
post Jun 9 2006, 02:45 AM
Post #1





Group: Members
Posts: 5
Joined: 4-January 06
Member No.: 8,854



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
Go to the top of the page
 
+Quote Post
Omicron
post Jun 9 2006, 10:19 AM
Post #2





Group: Members
Posts: 608
Joined: 14-April 04
Member No.: 2,853



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.
Go to the top of the page
 
+Quote Post
Meanie
post Jun 10 2006, 05:20 AM
Post #3





Group: Members
Posts: 2,808
Joined: 21-March 05
From: Sydney, Australia
Member No.: 6,686



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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 21st August 2014 - 11:54 PM