studio - ¿Cómo enviar solicitud SOAP y analizar la respuesta SOAP en formato XML en Android?
soap php android (1)
Google for 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 pls, consulte el tutorial para analizadores xml, use solo SAX, ya que STAX no es compatible con Android. Para enviar solicitudes XML, puede enviar xml como cadena y luego decodificar en el lado del servidor.
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. ¿Alguien puede 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í,
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.