Я использую KSOAP для Android для отправки SOAP-запросов, содержащих 6 элементов, последний из которых представляет собой массив значений. Вот код...
PropertyInfo properties[] = new PropertyInfo[numberOfProperties];
properties[0] = new UserLogin("user2");
properties[1] = new UserPassword("u2");
properties[2] = new MAC_ID("00:01:02:03:04:05");
properties[3] = new StartMeasurement(mStartTime);
properties[4] = new StopMeasurement(mStopTime);
SoapObject soapObjectRequest = new SoapObject(ROOT_NAMESPACE, mSoapMethodName);
for(int i=0;i< properties.length;i++)
soapObjectRequest.addProperty(properties[i]);
SoapObject eventList = new SoapObject(ROOT_NAMESPACE, "eventValues");
SoapObject eventValues = new SoapObject(TYPE_NAMESPACE, "EventValues");
eventValues.addProperty(9.9);
eventValues.addProperty(101.1);
eventList.addSoapObject(eventValues);
soapObjectRequest.addSoapObject(eventList);
Все работает отлично в запросе, запретите заказ. Когда я вызываю addSoapObject, он сначала помещает значения массива в запрос тела. Таким образом, все внутри элемента eventValues появляется в верхней части запроса. Это должен быть последний элемент для успешного выполнения запроса. Все остальные элементы собственности находятся в правильном порядке.
Есть ли способ диктовать заказ KSOAP? Я использую версию 2.6.0.
Любые предложения оценили!
Если вы хотите исправить это, вот патч и lib ksoap2-android-assembly-2.6.1 - jar-with-dependencies.jar http://fbe.am/3k <---- 2 патчи и lib
Вот тема: http://groups.google.com/group/ksoap2-android/browse_thread/thread/1ee05350dd8c041
спасибо много для Эндрю О. здесь его репо с исправлениями тоже (патчи генерируются от него) http://github.com/Usagimaru57/ksoap2-android
Меня устраивает.