2012-07-24 34 views
0

我想从web服务向使用kSOAP2的android应用程序发送字符串数组。 使用kSOAP2,我在Android端收到对象格式的响应。现在我想以字符串数组格式转换这个对象,这样我就可以直接将这个数组传递给GridView。将使用SOAP从(C#.net)web服务接收到的对象转换为Android中的字符串数组

我的Web服务方法如下:

[WebMethod] 
public string[] getit(string status) 
{ 
    string[] result; 
    if (status == "blue") 
     result = new string[] { "One", "Two", "Three", "Four" }; 
    else 
     result = new string[] { "five", "six", "Seven", "Eight" }; 
    return result; 
} 

我的Android代码如下:

public void call(String status) 
{ 
    try {  
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

     request.addProperty("status",status.toString()); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.dotNet=true; 
     envelope.setOutputSoapObject(request); 

     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
     androidHttpTransport.call(SOAP_ACTION, envelope); 

     Object result = (Object)envelope.getResponse(); 

     array1=(String []) result; //This statement does not work 
    } 
} 

在Android的代码阵列1被声明为全局字符串数组。 String array1 []; 我想将要转换的对象结果转换为array1字符串数组。 在此先感谢。

回答

0

首先使用result.toString()....打印“结果”对象,并查看它返回的内容,之后它不会直接转换成字符串[],它应该先转换成Object []数组。 ..一个接一个将它转换成字符串[]数组... ...所以你的代码应该是这样的......

Object [] objArr =(Object [])result;

String [] strArr = new String [objArr.length];

对(INT I = 0;我< = objArr.length;我++)

{

strArr[i]=objArr[i].toString(); 

}

那如何ü可以做到这一点....

+0

不完全。使用kSOAP2,您可以获得包含属性和属性的SoapObjects。其余的很容易处理。 – mihail 2012-07-24 11:39:16

+0

@mihail感谢您的输入,您可以请我解释一下,或者参考一个简单的直接示例来获取字符串数组中的数据。 – krishnamahadik 2012-07-24 12:02:35

1

现在我想不出一个好例子。您应该检查返回的对象。但我想,这里面

SoapObject result = (SoapObject)envelope.getResponse(); 

然后用性能SoapObject我想,如果你打电话

String s = (String)result.getProperty(0); 

你会得到返回的数组的第一个元素。

而且,你应该做一些必要的错误处理。

+0

它的工作原理,感谢mihail !!! – krishnamahadik 2012-08-03 16:20:09

相关问题