如何在Android中使用KSOAP2发送此SOAP请求
问题描述:
我对SOAP和Android非常陌生。有人可以帮助我构建一个SOAP请求来发送以下请求。如何在Android中使用KSOAP2发送此SOAP请求
SOAPAction: http://api.example.com/application
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns="http://api.example.com/registration/v3.1">
<soapenv:Header>
<ns0:appCredentials ns0:name="your-account-name" ns0:password="mypassword" ns0:targetAccountName="vvz"
xmlns:ns0="http://services.example.com/application/types/1.0"/>
</soapenv:Header>
<soapenv:Body>
<ns:identityPoint_identify_request>
<ns:identification type="email-password">
<ns:email>
<ns:address>[email protected]</ns:address>
</ns:email>
<ns:password>actionbar123</ns:password>
</ns:identification></ns:identityPoint_identify_request>
</soapenv:Body>
</soapenv:Envelope>
感谢您
答
我建议你使用KSOAP2 java库。它非常简单和伟大的自由。 即时使用它很长一段时间。 你可以在简单的java代码中构建你想要的任何soap对象。
这里:http://simpligility.github.io/ksoap2-android/index.html
一个简单的例子:
private static final String SOAP_ACTION = "http://tempuri.org/GetInteger2";
private static final String METHOD_NAME = "GetInteger2";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://10.0.22:4711/Service1.asmx";
public int GetInteger2() throws IOException, XmlPullParserException {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("i");
pi.setValue(123);
request.addProperty(pi);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
return Integer.parseInt(result.toString());
}
有乐趣!
我得到SoapFault - faultcode:'SOAP-ENV:Server'faultstring:'一个CXmlApiException被引发错误..#Daniel – 2015-03-25 10:46:02