0

好吧,我有一个有方法的服务器

  • 接收 MonitorRequest(可序列化对象)
  • 返回一个 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
}

所以,这是我的问题:我不能在服务器中更改这些对象的定义,所以我怎样才能在不出现“无法序列化错误”的情况下进行这种通信。

如何通过 KSOAP2 发送 ProductRequest、接收 ProductResponse[] 并获取特定的 ProductDetail?

我试过了:

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;

那么,我该如何进行这种交流呢?

4

1 回答 1

0

您在信封而不是 bodyIn 上获取响应,然后解析您在循环中获得的 SoapObject。

更多信息请访问

http://code.google.com/p/ksoap2-android/wiki/CodingTipsAndTricks

于 2011-08-10T04:14:03.953 回答