Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中解析复杂的soap对象_Android_Web Services_Soap_Ksoap2 - Fatal编程技术网

如何在Android中解析复杂的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

朋友们好,我第一次在代码中使用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 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();