[英]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.