#android #xmlserializer #ksoap2 #serializable #ksoap
#Android #xmlserializer #ksoap2 #сериализуемый #ksoap
Вопрос:
Ну, у меня есть сервер, на котором есть метод
- получает запрос монитора (сериализуемый объект)
- возвращает MonitorResponse[] (сериализуемый объект)
- Каждый MonitorResponse содержит MonitorDetail, содержащий необходимую мне информацию.
код:
class MonitorDetail implements Serializable{
String name;
//Long, Short, String (...)
}
class MonitorResponse implements Serializable{
Short returnCode;
MonitorDetail monitorCodeList; //the request can request more than 1 monitor info.
String user;
}
class MonitorRequest implements Serializable {
Integer storeCode;
Short categoryCode;
Long[] monitorCodeList; //here I post the code of the monitors I need
String user;
//getters and setters
}
Итак, вот мой вопрос:
Я НЕ МОГУ изменить определение этих объектов на сервере, так как я могу
выполните это сообщение, не получив сообщение «не удается сериализовать ошибку».
Как я могу отправить productRequest, получить ProductResponse [] и получить конкретный ProductDetail через KSOAP2?
Я пытался:
SoapObject request = new SoapObject(NAMESPACE, OPERATION);
request.addProperty(PROPERTY, getProductConfiguredMonitorRequest());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
enter code here
try {
httpTransport.call("", envelope);
SoapObject result = (SoapObject) envelope.bodyIn;
return extractMonitorDetailFromResult(result);
} catch (Exception e) {
/* a lot of stuff */
return null;
}
return null;
итак, как я могу осуществить это сообщение?
Ответ №1:
Вы получаете ответ на envelope вместо bodyIn, а затем анализируете полученный SoapObject в цикле.
Смотрите больше на
http://code.google.com/p/ksoap2-android/wiki/CodingTipsAndTricks