AndroidにおけるSOAPのanytype問題
SoapObject resultObj = null;
try{
SoapObject rpc = new SoapObject(NAMESPACE, METHORD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.setOutputSoapObject(rpc);
rpc.addProperty("methodName", methodName);
rpc.addProperty("xmlInfo", xml_info);
String URL = SysConfig.getInstance().getRootPath()+"services/"+AXIS_NAME+"?wsdl";
HttpTransportSE ht = new HttpTransportSE(URL);
ht.debug = true;
String SOAP_ACTION = NAMESPACE+"/" + METHORD_NAME;
ht.call(SOAP_ACTION, envelope);
resultObj = (SoapObject)envelope.bodyIn;
}catch(Throwable ex){
Log.d("connect",ex.getMessage());
resultObj = new SoapObject(NAMESPACE, METHORD_NAME);
resultObj.addProperty("return", " ");
}
測定時に、
String rtnStr = resultObj.getProperty("return").toString();
方式で取得したrtnStrはanyType{}であり,しばらくの間調べ検証した結果,サーバがreturn「」を返すと,このような状況になることが分かった.