Java KSOAP2 Web服务ilon100智能服务器

Java KSOAP2 Web服务ilon100智能服务器,java,android,web-services,wsdl,android-ksoap2,Java,Android,Web Services,Wsdl,Android Ksoap2,我正在尝试使用Android调用echelon smartserver的web服务。 我需要替换与Android不兼容的jax ws。我决定使用KSOAP2 我试过这种方法,但没有成功: public class ConnectTest extends Activity implements OnClickListener { Button SoapButton; private static final String NAMESPACE = "http://wsdl.echelon.c

我正在尝试使用Android调用echelon smartserver的web服务。 我需要替换与Android不兼容的jax ws。我决定使用KSOAP2

我试过这种方法,但没有成功:

public class ConnectTest extends Activity implements OnClickListener {
    Button SoapButton;
private static final String NAMESPACE = "http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/wsdl/";
    private static String URL = "http://192.168.100.247/WSDL/v4.0/iLON100.wsdl";
    private static final String METHOD_NAME = "List";
    private static final String SOAP_ACTION = "http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/wsdl/List";

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo propInfo = new PropertyInfo();
propInfo.name = "iLonItem";
request.addProperty("<xSelect>//Item[@xsi:type=\"Item_Cfg\"]</xSelect>",propInfo);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try 
            {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                SoapPrimitive resultsRequestSOAP = (SoapPrimitive) envelope
                        .getResponse();
                SoapResponse = resultsRequestSOAP.toString();
                System.out.println("SOAP" + SoapResponse);

            } catch (Exception e) 
            {

                Log.e("Error", "pb IO", e);
                SoapResponse = "error connection";
            }

            return SoapResponse;
我应该如何使用SOAP更正发送下面的消息?当然可以使用KSOAP2

   <List xmlns="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/message/">
<iLonItem>
<xSelect>//Item[@xsi:type=\"Item_Cfg\"]</xSelect>
</iLonItem>
</List>

//Item[@xsi:type=\“Item\u Cfg\”]
请帮忙。
谢谢

我认为有两件事需要改变

首先,预期的名称空间是
”http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/message/“

这可以在您提供的这行代码中找到

第二,我相信你已经改变了属性。iLonItem是属性名,应该在
请求中位于第一位,如下所示

request.addProperty("iLonItem","<xSelect>//Item[@xsi:type=\"Item_Cfg\"]</xSelect>" );
request.addProperty(“iLonItem”和“//Item[@xsi:type=\“Item\u Cfg\”]);

至于值,我不知道“//Item[@xsi:type=\“Item\u Cfg\”]”是什么意思,但希望它能够识别请求并执行它应该执行的操作

您知道请求结构是什么吗?它应该像我上面提到的一样。我想发送的消息(在我第一篇文章的底部)是服务器制造商提供的程序员参考指南中的一个示例。这很有帮助,我相信我发现了一些问题。让我知道它是否有效
request.addProperty("iLonItem","<xSelect>//Item[@xsi:type=\"Item_Cfg\"]</xSelect>" );