Foros del Web » Programando para Internet » Android »

Consumir WebService de tomcat desde el emulador android

Estas en el tema de Consumir WebService de tomcat desde el emulador android en el foro de Android en Foros del Web. Buenos días: Espero me puedan apoyar con esto, tengo un web service en un servidor apache tomcat 7 escuchando en puerto 8081 y funciona bien ...
  #1 (permalink)  
Antiguo 05/09/2014, 11:53
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 9 meses
Puntos: 11
Consumir WebService de tomcat desde el emulador android

Buenos días:
Espero me puedan apoyar con esto, tengo un web service en un servidor apache tomcat 7 escuchando en puerto 8081 y funciona bien (porque lo he probado desde un html). Lo quiero consumir desde una aplicación android pero al intentar consumirlo desde el emulador asi:

URL url=new URL("http://10.0.2.2:8081/MiWebService/MiMetodo");
HttpURLConnection conexion=(HttpURLConnection)url.openConnection();
conexion.setRequestMethod("POST");
conexion.setDoOutput(true);
OutputStreamWriter sal=new OutputStreamWriter(conexion.getOutputStream());
sal.write("maximo");
sal.write(URLEncoder.encode(String.valueOf(cantida d), "UTF-8"));
sal.flush();
if(conexion.getResponseCode()==HttpURLConnection.H TTP_OK){
//...
}else{
Log.e("AlmacenPuntuacionesWebServices::listaPuntua cionesE", conexion.getResponseMessage());
return null;
}


Se va por el else y me imprime forbbiden. El emulador esta configurado con la salida a internet ya que desde el browser del emulador si salgo a internet. ¿Tengo que hacer alguna configuración extra en el emulador o alguien sabe porque pasa esto?
  #2 (permalink)  
Antiguo 05/09/2014, 13:17
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Consumir WebService de tomcat desde el emulador android

Algunos tips:

1. Usa la imagen de android x86 + virtualbox. Es mucho mas rápido que el emulador que trae por default.
2. No quieres batallar configurando lo del paso 1? usa Genymotion.

Ahora, tu código falla porque tu vm esta nateado, usa port forwarding para evitar eso.
  #3 (permalink)  
Antiguo 05/09/2014, 17:03
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Consumir WebService de tomcat desde el emulador android

Gracias por responder, no me parece viable utilizar otro emulador ya que dadas las prestaciones de hardware que tengo el emulador de android reponde bien y no es lento.

He revisado lo que mencionas y me surigieron algunas dudas:
1. Segun la documentación de android:

Network Address Description
10.0.2.1 Router/gateway address
10.0.2.2 Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine)
10.0.2.3 First DNS server
10.0.2.4 / 10.0.2.5 / 10.0.2.6 Optional second, third and fourth DNS server (if any)
10.0.2.15 The emulated device's own network/ethernet interface
127.0.0.1 The emulated device's own loopback interface


Tengo una duda sobre la ip, he regresado la ip a la 127.0.0.1 pero en otras aplicaciones (sin web service) dicha ip no me funciono, la que funcionaba era esta 10.0.2.2. Pero leyendo esta documentación se me ocurre que tal vez deba usar esta 10.0.2.15.
Por otra parte me parece que la razon principal por la que no logro la conexion es el puerto. He leido la liga proporcionada y he entendido que tengo que hacer esto:

telnet localhost 5554
redir add tcp:<puerto_real_de_escucha_de_tomcat>:<mi_puerto_ desde_el_emulador>
redir add tcp:8081:8081

¿O me estoy equivocando en algo?
  #4 (permalink)  
Antiguo 05/09/2014, 17:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Consumir WebService de tomcat desde el emulador android

Todo esta correcto, una vez que hagas eso, recuerda cambiar la ip a 127.0.0.1 en tu código.
  #5 (permalink)  
Antiguo 06/09/2014, 15:38
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Consumir WebService de tomcat desde el emulador android

Hola,

Cita:
Iniciado por abrahamhs Ver Mensaje
... Se va por el else y me imprime forbbiden. ...
Posiblemente, mas pareciera una respuesta HTTP 403 Forbidden. Lo que creo es que si fuera un problema de red no llegaria al else, tiraria una exception. Posiblemente Tomcat tiene algún tipo de seguridad.

Saludos,
  #6 (permalink)  
Antiguo 06/09/2014, 16:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Consumir WebService de tomcat desde el emulador android

Eso también es cierto, deberías de poner el stacktrace, el nombre y valor de la excepción que lanza.

Puede ser de forbbiden 403, puede ser de forbbiden que no tienes permisos de Internet o algún otro tipo de forbbiden.

Etiquetas: androi, consumir, emulador, intent, tomcat, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:03.