2012-01-07 22 views
6

Soy muy nuevo en el desarrollo de aplicaciones de Android. En mi nueva aplicación de Android quiero mostrar algunos datos del servicio web. Esto significa que tengo un SOAP message, necesito analizar los datos de la respuesta SOAP. En la aplicación para iPhone, sabía muy bien analizar la respuesta al mensaje SOAP pero, en Android, ¿no sé cómo hacer esto? Busqué mucho en Google y obtuve algunas ideas. Pero estoy muy confundido sobre esto. ¿Puede alguien sugerir alguna 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í encontré un código de muestra, publico aquí,¿Cómo enviar una solicitud SOAP y analizar la respuesta SOAP en formato XML en Android?

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, da cualquier sugerencia sobre mi pregunta. Por favor ayúdame con esto. Gracias por adelantado.

Respuesta

5


Google para Ksoap2 tutorial obtendrá un montón de ellos. Aquí hay un código de muestra para enviar una 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 cheque pls tutorial para analizadores XML, su uso sólo SAX, como STAX no es compatible con Android. Para enviar solicitudes XML, puede enviar xml como cadena y luego decodificar en el lado del servidor.

+0

Muchas gracias por su respuesta. Incorporaré tu pensamiento en mi proyecto. Quiero tu ayuda en el futuro Gracias. – Gopinath

+0

¿Cómo configuró @Gopinath la propiedad para enviar el mensaje correcto? – arniotaki

Cuestiones relacionadas