![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
![]()
Hola, muy buenas!
Soy nuevo en esto de las aplicaciones Android, y estoy haciendo una que requiere consultar a un servicio web que yo he creado. El servicio web funciona porqué lo he probado solo y va bién. El servicio web es este: Código:
[WebMethod] public Boolean ComprovarUsuari(String correu, string pass) { string sel = string.Concat("SELECT nom FROM usuaris WHERE correu='", correu, "'", " AND pass='", pass, "'"); da = new SqlDataAdapter(sel, "Data Source=NombreMiOrdenador;Initial Catalog=baseDatos;Integrated Security=SSPI;"); DataSet ds = new DataSet(); try { da.Fill(ds); } catch (Exception ex) { throw ex; } if (ds.Tables[0].Rows.Count < 1) { return false; } else { return true; } } Posiblemente no este optimizada ya que es la primera que hago, si alguien quiere aportar ideas se lo agradezco. El codigo que he encontrado en algun tutorial de android es el siguiente: Código:
private static final String namespace = "http://localhost/WebService"; private static final String url = "http://localhost:52711/Service1.asmx"; private static final String Metodo = "ComprovarUsuari"; private static final String accionSoap = "http://localhost:52711/Service1.asmx?op=ComprovarUsuari"; public void onClick(View v) { Button button = (Button) v; if (button.getId() == R.id.regButton) { Intent intent = new Intent(this, Reg.class); startActivity(intent); } else if (button.getId() == R.id.loginButton) { //Codi a executar per comprovar usuari SoapObject Solicitud = new SoapObject(namespace, Metodo); //paràmetres PropertyInfo correu = new PropertyInfo (); PropertyInfo pass = new PropertyInfo (); //Valors dels paràmetres correu.setName ("correu"); correu.setValue (R.id.userText); pass.setName ("pass"); pass.setValue (R.id.passText); Solicitud.addProperty (correu); Solicitud.addProperty (pass); SoapSerializationEnvelope Envoltorio = new SoapSerializationEnvelope (SoapEnvelope.VER12); //Si el servei web es .NET Envoltorio.dotNet = true; Envoltorio.setOutputSoapObject (Solicitud); HttpTransportSE TransporteHttp = new HttpTransportSE(url); try { TransporteHttp.call (accionSoap, Envoltorio); En esta línea me falla, y me salta a la IOException. } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } String resposta = "prova"; try { resposta = (String) Envoltorio.getResponse(); } catch (SoapFault e) { e.printStackTrace(); } Toast.makeText(this, resposta, Toast.LENGTH_SHORT).show(); } ![]() Gracias de antemano ![]() |
|
#2
|
Piensa que si vas a sacar la app al público, cualquiera la puede decompilar y ver la conexión que haces con la base de datos (usuario y contraseña incluidos).
Deberías hacer un script php o similar que haga de intermediario. |
#3
|
||||
|
||||
Mira yo desarrolle una aplicacion que consume un web service que anda de 10 .. te paso el codigo que use yo :
Código:
private static final String accionSoap = "http://tempuri.org/NombreMetodo"; private static final String Metodo = "NombreMetodo"; private static final String namespace = "http://tempuri.org"; private static final String url = "url donde esta tu webservice"; String resultadoFINAL; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { //Modelo el request SoapObject request = new SoapObject(namespace, Metodo); //Modelo el Sobre SoapSerializationEnvelope sobre = new SoapSerializationEnvelope(SoapEnvelope.VER11); sobre.dotNet = true; sobre.setOutputSoapObject(request); //Modelo el transporte HttpTransportSE transporte = new HttpTransportSE(url); //Llamada transporte.call(accionSoap, sobre); //Resultado SoapPrimitive resultado = (SoapPrimitive) sobre.getResponse(); resultadoFINAL = resultado.toString(); } catch (Exception e) { e.getMessage(); } obviamente para hacer esto tenes que incluir en tu proyecto la libreria KSOAP2 Última edición por maxenz Día 07/10/11 a las 04:22:09 |
#4
|
||||
|
||||
Ok, lo voy a probar i os comento que tal! Gracias!
|
#5
|
||||
|
||||
Conoces alguna web que indique como hacerlo?
|
#6
|
#7
|
||||
|
||||
Cita:
![]() |
#8
|
||||
|
||||
En el campo URL, si estoy trabajando en mi maquina local a través del IIS, que debo poner? he probado con mi ip y con localhost pero nada..
|
#9
|
La IP privada del PC que está corriendo el IIS (192.168... o 172.1...) si estás en wifi. Si estás en 3G, tendrás que abrir los puertos del router y apuntar a tu IP pública.
|
#10
|
||||
|
||||
Cita:
http://192.168.1.36/WebService1/Service1.asmx i me lanza esta excepción: Sin título.png |
#11
|
¿Has mirado lo que te devuelve si entras desde el navegador?
|
#12
|
||||
|
||||
Cita:
http://localhost:61557/Service1.asmx i me dice que rechaza la conexion: Sin título.png Por cierto, gracias por tu tiempo. PD: Debugando, veo que salta a la excepción a la línea Código:
transporte.call(accionSoap, sobre); Última edición por n3ok Día 07/10/11 a las 12:03:47 |
#13
|
Ah, coñe. Pensaba que estabas en un móvil real... Échale un vistazo a esto, entonces: http://umakantpatil.com/posts/androi...les-on-windows
|
#14
|
||||
|
||||
Cita:
Voy a seguir provando con lo que quería. Gracias por todo! |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 00:04:15 (GMT +2)
HTCMania: líderes desde el 2007