Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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中的ksoap2发送和接收复杂数据[序列化错误]_Android_Xmlserializer_Ksoap2_Serializable_Ksoap - Fatal编程技术网

通过android中的ksoap2发送和接收复杂数据[序列化错误]

通过android中的ksoap2发送和接收复杂数据[序列化错误],android,xmlserializer,ksoap2,serializable,ksoap,Android,Xmlserializer,Ksoap2,Serializable,Ksoap,嗯,我有一个服务器,它有一个方法 接收MonitorRequest(可序列化对象) 返回MonitorResponse[](可序列化对象) 每个MonitorResponse都包含一个MonitorDetail,其中包含我需要的信息 代码: 所以,我的问题是: 我无法在服务器中更改这些对象的定义,因此如何更改 在不获取“无法序列化错误”的情况下进行此通信 如何发送ProductRequest、接收ProductResponse[]和 通过KSOAP2获取特定的产品详细信息 我试过: Soap

嗯,我有一个服务器,它有一个方法

  • 接收MonitorRequest(可序列化对象)
  • 返回MonitorResponse[](可序列化对象)
  • 每个MonitorResponse都包含一个MonitorDetail,其中包含我需要的信息
代码:

所以,我的问题是: 我无法在服务器中更改这些对象的定义,因此如何更改 在不获取“无法序列化错误”的情况下进行此通信

如何发送ProductRequest、接收ProductResponse[]和 通过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;

那么,我如何进行这种通信呢?

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

更多信息请访问

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;