¿Cómo enviar la solicitud SOAP y analizar la respuesta SOAP en formato XML en Android?
Soy muy nuevo en el desarrollo de aplicaciones para Android. En mi nueva aplicación de Android quiero mostrar algunos datos de webservice. Esto significa que tengo un SOAP message
, necesito analizar los datos de la respuesta SOAP. En la aplicación de iPhone que conocía muy bien para analizar la respuesta de mensaje SOAP, pero, en Android no sé cómo hacer esto? He buscado mucho en Google y obtener algunas ideas. Pero, estoy muy confuso en esto. ¿Puede cualquier persona por favor sugerir cualquier forma más fácil de entender SOAP enviar solicitud / recibir respuesta y analizar ( XML format
) la respuesta en SAXParser
en Android
? He instalado ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar
en mi proyecto. Aquí he encontrado algún código de ejemplo, publico aquí,
import java.io.*; import org.ksoap2.SoapEnvelope; import org.kxml2.io.KXmlParser; import org.xmlpull.v1.XmlPullParserException; public class ParsingSteps { public static void main(String[] args) { try{ // String msg="<hello>World!</hello>"; String msg = "<SOAP-ENV:Envelope " + "xmlns:SOAP-ENV=\"http:// www.w3.org/2001/12/soap-envelope\" " + "xmlns:xsi=\"http://www.w3.org/ 2001/XMLSchema-instance <http://www.w3.org/%0A2001/XMLSchema-instance>\"" +"xmlns:xsd=\"http://www.w3.org/2001/ XMLSchema\"& gt;" + "<SOAP-ENV:Body>" + "<result>" + "<message xsi:type=\"xsd:string\">Hello World</message>" + "</result>" + "</SOAP-ENV:Body>" + "</SOAP-ENV:Envelope>"; // byte[] in= msg.getBytes(); KXmlParser parser=new KXmlParser(); parser.setInput(new StringReader(msg)); SoapEnvelope soapenvelope= new SoapEnvelope (SoapEnvelope.VER12); //soapenvelope.parse(parser); soapenvelope.parseBody(parser); } catch (IOException e) { System.out.println("Error reading URI: " + e.getMessage ()); } catch (XmlPullParserException e) { System.out.println("Error in parsing: " + e.getMessage ()); } // String result=parser.getName(); //System.out.println(result); } }
Es este código correcto. Por favor, dé cualquier sugerencia sobre mi pregunta. por favor ayudame con esto. Gracias por adelantado.
- Mejor manera de analizar la Biblia en Android
- android - string.xml error de análisis
- Cómo aumentar el tamaño de transport.dump de 256 bytes a 512 o más bytes en KSOAP2?
- ¿Cómo puedo analizar xml de url en android?
- ¿Cómo puedo acelerar el análisis XML de Android?
- XmlPullParser obtener archivo del sistema de archivos
- Análisis del archivo gpx local en Android
- NetworkOnMainThread
- Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"
- Analizador de XML común de Android
- Cómo quitar caracteres de acento de un InputStream
- Análisis local de xml android con drawable
- Excepción de Android asynctask
Google para Ksoap2 tutorial u obtendrá un montón de ellos. Aquí está un ejemplo de código para enviar la solicitud al servicio web.
public class WebServicePoc extends Activity{ private static final String SOAP_ACTION = "http://tempuri.org/Arnoid"; private static final String METHOD_NAME = "Arnoid"; private static final String NAMESPACE = "http://tempuri.org/"; private static final String URL = "http://ipaddress:port/UserAuthenticationInterfacer.asmx"; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); HashMap<String, String> a=new HashMap<String, String>(); try { SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("FOSID", "1994"); request.addProperty("IMEINumber", ""); request.addProperty("SIMCardNo", ""); request.addProperty("ApplicationName", "App"); request.addProperty("CurrentVersion", "1.0.0.0"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet=true; envelope.setOutputSoapObject(request); AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL); androidHttpTransport.call(SOAP_ACTION, envelope); SoapObject result = (SoapObject)envelope.getResponse(); editText=(EditText)findViewById(R.id.text1); editText.setText(result.toString()); } catch (Exception e) { e.printStackTrace(); }
Y para xml pls comprobar tutorial para xml analizadores, uso SAX sólo, como STAX no es compatible con android. Para enviar xml solicitud u puede enviar xml como cadena y, a continuación, decodificar en lado separador.
- Responde al teclado mientras se actualiza la interfaz de usuario
- Instalación de XPIs sin signo en Firefox para Android versión 42 o posterior