Android, Ksoap, webService
ayúdame, estoy en él alrededor de 3 semanas buscando todo el www y no puedo hacer que funcione!
Tengo un WS y sólo quiero hacer que mi aplicación tenga la respuesta. pero después de todo correcto desafortunadamente siempre reciben el siguiente error!
- Obtener longitud desconocidaHttpInputStream al obtener InputStream de HttpURLConnection en android
- Cómo obtener actualizaciones en vivo a través de JSON a listview
- Creación de servicio web para aplicaciones de Android
- ¿Cómo funciona la sincronización de datos y cómo la uso en aplicaciones cliente-servidor?
- Tutorial de servicio web de Android
08-09 15:29:30.930: INFO/System.out(1800): That is the bodyin envelope: SoapFault - Faultcode: 'env:Server' faultstring: 'javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Apgame"). Expected elements are <{http://master.system.com.br/}Apgame>, <{http://master.system.com.br/}numberSerie>, <{http://master.system.com.br/}idPost>, faultactor: 'null' detail: null
Mi aplicación está utilizando esto.
private void getSOAPRequest() { //no matter what I put here in SOAP_ACTION it makes no difference String SOAP_ACTION = "http://master.system.com.br/"; String NAMESPACE = "http://system.com.br/"; String METHOD_NAME = "GetPrice"; String URL = "http://12.12.12.111/MasterWS/GetPrice?WSDL"; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("Apgame", "8"); request.addProperty("numberSerie", "31345"); request.addProperty("idPost", "4"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); try { androidHttpTransport.call(SOAP_ACTION, envelope); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace();} System.out.println("That is the bodyin envelope: "+ envelope.bodyIn); }
Tengo interfaz de usuario de SOAP y puedo hacer llamadas a WS con realmente ningún problema con.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tran="http://master.system.com.br/" xmlns:ws="http://system.com.br/"> <soapenv:Body> <ws:GetPrice> <tran:Apgame>8</tran:Apgame> <tran:numberSerie>31345</tran:numberSerie> <tran:idPost>4</tran:idPost> </ws:GetPrice> </soapenv:Body> </soapenv:Envelope>
He intentado las diferentes bibliotecas de Ksoap, namespaces diferentes, method_name. Diferent SoapEnvelope.VER. No puedo recordar todo lo que he probado. Estoy desesperado.
Muchas gracias..
- Excepción "Caracteres ilegales en la consulta en el índice -" en Android
- Bloquear usuarios no Android que llaman al servicio JSON
- Android - ¿Cómo manejar Webservice en XML?
- SOAP xml a cambio - Android
- Conectando MySql con Android sin usar PHP
- Bouncy Castle Keystore (BKS): java.io.IOException: Versión incorrecta del almacén de claves
- ¿Hay alguna forma sólida de hacer frente a la autenticación integrada de Windows (NTLM) desde una aplicación de Android?
- La mejor manera de almacenar en caché una respuesta de XML / JSON en mi uso. Archivo de texto completo?
Debe proporcionar un espacio de nombres para cada propiedad. Pruebe la versión sobrecargada de addProperty
y configure PropertyInfo
contenga tanto name
como namespace
de namespace
para cada propiedad.
Algo como:
String TRAN_NAMESPACE = "http://master.system.com.br/"; ... SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); PropertyInfo apGame = new PropertyInfo(); apGame.name = "Apgame"; apGame.namespace = TRAN_NAMESPACE; request.addProperty(apGame, "8"); ...
Hazlo asi:
String SOAP_ACTION = "http://master.system.com.br/"; String NAMESPACE = "http://system.com.br/"; String METHOD_NAME = "GetPrice"; String URL = "http://12.12.12.111/MasterWS/GetPrice?WSDL"; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("Apgame", "8"); request.addProperty("numberSerie", "31345"); request.addProperty("idPost", "4"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet=true; envelope.setOutputSoapObject(request); try { HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(SOAP_ACTION, envelope); SoapPrimitive result = (SoapPrimitive)envelope.getResponse(); } catch (Exception e) { }
Si sus variables de Uri son correctas esto debe hacer el truco.
- Mi aplicación de trabajo en android 2.2 y android 2.3.3 emuladores, pero no en mi teléfono galaxy s Android 2.3.5 / Leer facebook, twitter contactos?
- Eliminar el subrayado de los enlaces en TextView – Android