KSOAP故障异常

时间:2012-05-16 04:27:37

标签: android ksoap2

我在我的应用程序中使用SOAP服务。我收到错误消息

 SoapFault - faultcode: 'soap:Client' faultstring: 'System.Web.Services.Protocols.SoapException: Server was unable to read request. ---> System.InvalidOperationException: There is an error in XML document (1, 301). ---> System.InvalidOperationException: The specified type was not recognized: name='authentication',

我的SOAP请求结构是:

 <authentication>
    <LoginID>string</LoginID>
    <Password>string</Password>
  </authentication>
  <Id>int</Id>
  <Str>string</Str>   

我的代码是:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

                PropertyInfo usrid =new PropertyInfo();
            usrid.setName("LoginID");
            usrid.setValue(userid);
            usrid.setType(String.class);
            request.addProperty(usrid);        

//          
            PropertyInfo pass =new PropertyInfo();
            pass.setName("Password");
            pass.setValue(password);
            pass.setType(String.class);
            request.addProperty(pass);

                PropertyInfo rote =new PropertyInfo();
            rote.setName("Id");
            rote.setValue(4114616);
            rote.setType(int.class);
            request.addProperty(rote);
//          
            PropertyInfo dte =new PropertyInfo();
            dte.setName("Str");
            dte.setValue(date);
            dte.setType(String.class);
            request.addProperty(dte);



 androidHttpTransport.call(SOAP_ACTION,envelope);              
//              SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                System.out.println("subbu");
                Object response=(Object)envelope.getResponse();---->I think i am getting error here.

任何人都可以帮助我做错了。

1 个答案:

答案 0 :(得分:1)

查看以下链接:

authentication是一个复杂的对象,但您已添加了所有属性。尝试这样的事情:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

SoapObject authenticate = new SoapObject(NAMESPACE, "authenticate");
authenticate.addProperty("LoginID", "login");
authenticate.addProperty("Password", "password");

request.addSoapObject(authenticate);
request.addProperty("Id", "123");
request.addProperty("Str", "string");