2013-04-24 2 views
2

Привет друзья Я использую мыльные веб-службы в первый раз в своем коде. , но я не понимаю, как обращаться с вложенными мыльными объектами. это мой кодкак разобрать сложные мыльные объекты в Android

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", "[email protected]"); 
     request.addProperty("Password", "[email protected]"); 
     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(); 
     } 

я получаю объект мыло как ответ и который очень сложен, так что я не получаю, как разобрать его. this is my response Это очень маленькая часть моего ответа.

Я не получаю, как получить значения из SoapObject -> Свойства -> elementData -> value-> property -> elementData и т. Д. ... слишком сложно, пожалуйста, помогите мне.

+0

Привет, я столкнулся с подобной проблемой, так что вы смогли конвертировать 'SoapObject' в' InputStream'? Я использовал методы из класса SoapObject для анализа ответа 'SoapObject', но для его синтаксического анализа требуется слишком много времени. Я хотел бы преобразовать 'SoapObject' в' InputStream' и использовать 'XMLPullParser', но не знаю, как это сделать. Любое предложение будет оценено, спасибо. – Solace

ответ

0

Это простой синтаксический анализ XML. Пройдите через link для получения более подробной информации.

Вы можете получить ответ как поток ввода и преобразовать его в строку и используя эту строку, вы можете создать объект XML. Для получения дополнительной информации см. Ссылку.

+1

Я знаю, что это простой xml, но как получить весь этот xml от ответа на объект Soap? и ссылка, предоставленная вами, дает мне ошибку 404, которую невозможно открыть. не могли бы вы рассказать мне, как разбирать этот xml через мыльный объект ???? n спасибо за быстрый ответ –

+0

обновил мой ответ. – Kameswari

+0

, но я получаю свой ответ в SoapObject, поэтому я столкнулся с проблемой на самом деле. Я не получаю, как разбирать ее или в соответствии с вами, как я могу создать xml или строку ввода из нее. Можете ли вы предоставить некоторый код для Это.. ? –

1

Вы можете преобразовать мыльный объект в строку. Проверьте пример кода ниже Eg:

 final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
    final String str = response.toString(); 
+0

спасибо за ответ, но ее невозможно преобразовать в String, потому что это слишком тяжело и если я попытаюсь сохранить его в String, это даст мне исключение из памяти. –

Смежные вопросы