如何在Android中解析复杂的soap对象
朋友们好,我第一次在代码中使用soap web服务。 但我不知道如何处理嵌套的soap对象。 这是我的密码如何在Android中解析复杂的soap对象,android,web-services,soap,ksoap2,Android,Web Services,Soap,Ksoap2,朋友们好,我第一次在代码中使用soap web服务。 但我不知道如何处理嵌套的soap对象。 这是我的密码 private final String URL = "http://192.168.0.20/BookingEngineService/HotelBookingService.asmx"; private final String SOAP_ACTION = "http://tempuri.org/AndroidTestRequest"; private final St
private final String URL = "http://192.168.0.20/BookingEngineService/HotelBookingService.asmx";
private final String SOAP_ACTION = "http://tempuri.org/AndroidTestRequest";
private final String METHOD_NAME = "AndroidTestRequest";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("User", "abcd@xyz.com");
request.addProperty("Password", "abcd@123");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.headerOut = new Element[1];
envelope.headerOut[0] = buildAuthHeader();
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
Log.i("myAppEnvelope", envelope.toString());
SoapObject response = (SoapObject) envelope.getResponse();
// here i am trying to get values from response which is soap object
for (int i = 0; i < response.getPropertyCount(); i++) {
SoapObject con = (SoapObject) response.getProperty(i);
Log.e("Continent", con.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
private final String URL=”http://192.168.0.20/BookingEngineService/HotelBookingService.asmx";
私有最终字符串SOAP_ACTION=”http://tempuri.org/AndroidTestRequest";
私有最终字符串方法\u NAME=“AndroidTestRequest”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SoapObject请求=新的SoapObject(名称空间、方法名称);
request.addProperty(“用户”abcd@xyz.com");
request.addProperty(“密码”abcd@123");
SoapSerializationEnvelope=新的SoapSerializationEnvelope(
第11版);
envelope.headerOut=新元素[1];
envelope.headerOut[0]=buildAuthHeader();
envelope.dotNet=true;
envelope.setOutputSoapObject(请求);
HttpTransportSE androidHttpTransport=新的HttpTransportSE(URL);
试一试{
调用(SOAP_操作,信封);
Log.i(“myAppEnvelope”,envelope.toString());
SoapObject响应=(SoapObject)信封.getResponse();
//这里我试图从响应中获取值,响应是soap对象
对于(int i=0;i
我将soap对象作为一个响应,它非常复杂,所以我不知道如何解析它。这是我响应的一小部分
我不知道如何从SoapObject->Properties->elementData->value->property->elementData等获取值……太复杂了,请帮助我。这是一个简单的XML解析。有关详细信息,请查看
您可以将响应作为输入流获取,并将其转换为字符串,然后使用该字符串创建XML对象。有关详细信息,请参阅链接。您可以将soap对象转换为字符串。请查看下面的示例代码 例如:
我知道这是一个简单的xml,但如何从Soap对象响应中获取整个xml?您提供的链接给我404错误无法打开。您能告诉我如何通过Soap对象解析此xml吗???感谢您的快速响应,但我在Soap对象中得到响应,因此我实际上面临着问题。我没有得到h如何解析它,或者根据您的要求,我如何从中创建xml或输入字符串?请提供一些代码。您可以参考此链接,谢谢回复,但无法将响应转换为字符串,因为它太重,如果我尝试将其存储为字符串,它将给我内存不足的异常。您好,我面临一个si类似的问题,那么您是否能够将
SoapObject
转换为InputStream
?我使用了SoapObject
类中的方法来解析SoapObject
响应,但是解析它需要花费一些时间。我想将SoapObject
转换为InputStream
,并使用XMLPullParser代码>,但不知道如何操作。如有任何建议,将不胜感激,谢谢。
final SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
final String str = response.toString();