[英]Weird response from Android soap service call
我们有一个Android应用程序,我们正在尝试用于Web服务通信。
我们可以使用以下代码段成功发送请求并获得响应。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
setContentView(textView);
//textView.setText();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("foo", "bar");
request.addProperty("foo", "bar");
request.addProperty("foo", "bar");
request.addProperty("foo", "bar");
request.addProperty("foo", "bar");
request.addProperty("foo", "bar");
Log.w(TAG, request.toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.encodingStyle = "utf-8";
envelope.implicitTypes = false;
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
try
{
httpTransport.call(SOAP_ACTION, envelope);
KvmSerializable ks = (KvmSerializable)envelope.bodyIn;
for(int i=0;i < ks.getPropertyCount();i++)
{
ks.getProperty(i);
SoapObject soap = (SoapObject)ks.getProperty(i);
String tmp = soap.getProperty(0).toString();
textView.setText(tmp);
Log.w(TAG2, envelope.toString());
Log.w(TAG3, ks.getProperty(i).toString());
}
}
catch (Exception exception)
{
textView.setText(exception.toString());
Log.w(TAG4, exception);
}
}
现在,来自textView.setText(tmp);
呈现的请求的响应textView.setText(tmp);
提出如下答复:
anyType{foo=bar;foo=bar;foo=bar;}
而我们希望它以foo = bar, foo = bar
任何点击和指针将受到高度赞赏。 提前致谢。
你有这些:
SoapObject soap = (SoapObject)ks.getProperty(i);
String tmp = soap.getProperty(0).toString();
你需要使用这些:
SoapObject soap = (SoapObject)ks.getProperty(i);
SoapObject tmp = soap.getProperty(0);
String foo = tmp.getProperty(0).toString();
我看到你使用的是复杂类型,你应该使用HttpTransportSE
而不是AndroidHttpTransport
。
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.