Error de timeout al intentar conectarme a webservice REST

758 views
Skip to first unread message

Fer Juarez

unread,
Jul 23, 2012, 10:54:36 AM7/23/12
to desarrollad...@googlegroups.com
Hola como estan? estoy desarrollando una aplicacion andorid con Eclipse y ADT, es muy simple, se conecta a un servidor via POST para utilizar un servicio, funciona bien cuando seteo mi IP o mi IP de localhost y la ejecuto en el emulador, pero cuando corro la aplciacion en mi celular no se puede conectar, me devuelve un error de Timeout , trate con un web service diferente pero el error es el mismo. Este es mi codigo:



public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.httpCall();

}


public void httpCall(){

try{

String name = null;
String pass = null;
String options = null;

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 20000);
HttpConnectionParams.setSoTimeout(httpParameters, 20000);
ConnManagerParams.setTimeout(httpParameters, 20000);

DefaultHttpClient client = new DefaultHttpClient(httpParameters);

UsernamePasswordCredentials creds = new UsernamePasswordCredentials("restuser", "restbpm");
client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), creds);
HttpPost post = new HttpPost("http://10.36.0.141:8080/bonita-server-rest/API/runtimeAPI/instantiateProcess/holamundo--1.0");

post.setHeader("content-type", "application/x-www-form-urlencoded");

List <NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("options", "user:admin"));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse resp = client.execute(post);


String respStr = EntityUtils.toString(resp.getEntity());


TextView tv = new TextView(this);
tv.setText(respStr);
setContentView(tv);

} catch(Exception ex){
Log.e("ServicioRest","Error!", ex);
}
}

Gracias!!!!

Jc Miñarro

unread,
Jul 23, 2012, 11:03:04 AM7/23/12
to desarrollad...@googlegroups.com
Vamos a comenzar por el principio...
Tienes conectado el dispositivo Android en la misma subred 
en el cual tienes el servidor ¿?
Si es así tu dispositivo Android debería tener una IP de la forma
10.XXX.XXX.XXX.

Luego otra cosa, las conexiones a "Internet", guardar cosas en 
bases de datos... En concreto "procesos lentos" deberías de tratarlos
en un hilo diferente.

Por otro lado, también podrías poner el mensaje de error que te devuelve.


--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/E52TAn24xXMJ.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Un saludo,
Jc Miñarro

-------------------------------------------------------------------------------------------
CarteleraApp - Consulta la cartelera y estrenos de los cines españoles.

Fer Juarez

unread,
Jul 24, 2012, 8:11:23 AM7/24/12
to desarrollad...@googlegroups.com
Gracias por la respuesta!!, estan bajo la misma red. El dispositivo en
192.168.1.129 y el servidor en 192.168.1.106. 
Con respecto a los hilos tenes razon en lo que decis, pero no creo que en un principio sea necesario para que funcione, pero es obvio que podria mejorarse el codigo.
Dejo el logcat, mil gracias!!

07-23 18:54:57.139: D/dalvikvm(4272): Debugger has detached; object registry had 1 entries 07-23 18:55:18.199: E/ServicioRest(4272): Error! 07-23 18:55:18.199: E/ServicioRest(4272): org.apache.http.conn.ConnectTimeoutException: Connect to /192.168.1.106:8080 timed out 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:580) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:512) 07-23 18:55:18.199: E/ServicioRest(4272): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:490) 07-23 18:55:18.199: E/ServicioRest(4272): at mero.resthttp.MainActivity.httpCall(MainActivity.java:85) 07-23 18:55:18.199: E/ServicioRest(4272): at mero.resthttp.MainActivity.onCreate(MainActivity.java:52) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.ActivityThread.access$1500(ActivityThread.java:121) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 07-23 18:55:18.199: E/ServicioRest(4272): at android.os.Handler.dispatchMessage(Handler.java:99) 07-23 18:55:18.199: E/ServicioRest(4272): at android.os.Looper.loop(Looper.java:123) 07-23 18:55:18.199: E/ServicioRest(4272): at android.app.ActivityThread.main(ActivityThread.java:3701) 07-23 18:55:18.199: E/ServicioRest(4272): at java.lang.reflect.Method.invokeNative(Native Method) 07-23 18:55:18.199: E/ServicioRest(4272): at java.lang.reflect.Method.invoke(Method.java:507) 07-23 18:55:18.199: E/ServicioRest(4272): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 07-23 18:55:18.199: E/ServicioRest(4272): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 07-23 18:55:18.199: E/ServicioRest(4272): at dalvik.system.NativeStart.main(Native Method) 07-23 18:56:22.849: D/dalvikvm(4272): Debugger has detached; object registry had 1 entries 07-23 18:57:33.212: D/dalvikvm(4272): Debugger has detached; object registry had 1 entries 07-23 18:59:30.529: E/ServicioRest(4401): Error! 07-23 18:59:30.529: E/ServicioRest(4401): org.apache.http.conn.ConnectTimeoutException: Connect to /192.168.1.106:8080 timed out 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:580) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:512) 07-23 18:59:30.529: E/ServicioRest(4401): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:490) 07-23 18:59:30.529: E/ServicioRest(4401): at mero.resthttp.MainActivity.httpCall(MainActivity.java:85) 07-23 18:59:30.529: E/ServicioRest(4401): at mero.resthttp.MainActivity.onCreate(MainActivity.java:52) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.ActivityThread.access$1500(ActivityThread.java:121) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 07-23 18:59:30.529: E/ServicioRest(4401): at android.os.Handler.dispatchMessage(Handler.java:99) 07-23 18:59:30.529: E/ServicioRest(4401): at android.os.Looper.loop(Looper.java:123) 07-23 18:59:30.529: E/ServicioRest(4401): at android.app.ActivityThread.main(ActivityThread.java:3701) 07-23 18:59:30.529: E/ServicioRest(4401): at java.lang.reflect.Method.invokeNative(Native Method) 07-23 18:59:30.529: E/ServicioRest(4401): at java.lang.reflect.Method.invoke(Method.java:507) 07-23 18:59:30.529: E/ServicioRest(4401): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) 07-23 18:59:30.529: E/ServicioRest(4401): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) 07-23 18:59:30.529: E/ServicioRest(4401): at dalvik.system.NativeStart.main(Native Method)

Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com

Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/E52TAn24xXMJ.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Leonardo Fernandez

unread,
Jul 24, 2012, 8:57:14 AM7/24/12
to desarrollad...@googlegroups.com
Me quede curioso, nose si en el ejemplo la ip  ("http://10.36.0.141:8080/bonita-server-rest/API/runtimeAPI/instantiateProcess/holamundo--1.0" es solo a modo de ejemplo y la ip de uso es la /192.168.1.106:8080
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/X8g15JNK3ioJ.

Jc Miñarro

unread,
Jul 24, 2012, 9:35:11 AM7/24/12
to desarrollad...@googlegroups.com
Cuando accedes a 192.168.1.106:8080 desde un navegador de un
ordenador conectado a la misma red obtienes alguna respuesta ¿?

Respecto a lo de hacer las peticiones en un hilo diferente creo recordar
que es un requisito a partir un la API X de Android (No recuerdo la versión ;) )
Si estoy equivocado que alguien lo diga, en caso de que esté en lo cierto que 
comente la versión de la API. XD

Leonardo Fernandez

unread,
Jul 24, 2012, 10:03:46 AM7/24/12
to desarrollad...@googlegroups.com
Api level 11   NetworkOnMainThreadException

Fer Juarez

unread,
Jul 24, 2012, 2:02:25 PM7/24/12
to desarrollad...@googlegroups.com
Gracias gente por las respuestas, efectivamente Leodufer me quedo cambiada la ip ya que esa es la red de mi casa, y en el codigo quedo la de la oficina. En ninguna de las dos redes funciono, con respecto a la Api Level estoy usando la 10, no sabia que con la 11 era requisito trabajar en un hilo separado.
El servidor funciona por que puedo acceder desde la url al UserXP de Bonita (la interface de usuario del servidor BPMS) :(
Api level 11   NetworkOnMainThreadException

Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsubscr...@googlegroups.com

Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/E52TAn24xXMJ.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Un saludo,
Jc Miñarro

-------------------------------------------------------------------------------------------
CarteleraApp - Consulta la cartelera y estrenos de los cines españoles.

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/X8g15JNK3ioJ.

Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Un saludo,
Jc Miñarro

-------------------------------------------------------------------------------------------
CarteleraApp - Consulta la cartelera y estrenos de los cines españoles.

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com

Fer Juarez

unread,
Jul 26, 2012, 8:45:55 AM7/26/12
to desarrollad...@googlegroups.com
alguien noto algo raro en el codigo? aun no logro conectarme voy a probar con un hilo separado. Pero es raro que en el emulador si funcione. Saludos!
Reply all
Reply to author
Forward
0 new messages