I have this very big bug in my application that I really can't seem to solve. Whenever I make a rest call via the following code:
HttpGet request = new HttpGet(url + getParams());
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
httpClient.execute(request);
I get the error in DDMS:
07-15 11:22:47.448: WARN/System.err(973): org.apache.http.conn.ConnectTimeoutException: Connect to (some ip-address) timed out
But sometimes the code works perfect and I receive my data as it should. I also tested the rest server call via a normal webbrowser on my computer and that always gives back my data within 100ms. So what am I doing wrong? I also tested it on another device, but that gives me the same problem. I would be SO glad if somebody could solve my problem :)
The problem is the DefaultHttpClient
. Are you using it asynchronously? Since the DefaultHttpClient
is not thread-safe, using it in an asynchronous environment might cause a problem. I've had this problem before when my activity started multiple Http connection at the same time and i ended up changing it to use HttpURLConnection
. You can refer to this site: http://www.vogella.de/articles/AndroidNetworking/article.html
I having the same issue.
Try using direct IP for your requests. I noticed that Android DNS lookups behave quite weird sometimes. I searched and found this : http://mailinglists.945824.n3.nabble.com/Android-and-reverse-DNS-lookup-issues-td3011461.html .
Dunno if it's relevant or not, i'm still trying to find a workaround. Maybe someone here can take a look and figure it out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With