在android中的KSOAP请求

时间:2012-05-12 05:26:41

标签: android ksoap2

我的SOAP请求格式如下:

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

我必须传递Loginid,pass,id,str作为输入。所以我通过addproperty设置它,如下所示:

     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);

这是我设置的正确方法。因为我收到错误:

 SoapFault - faultcode: 'soap:Server'
  faultstring: 'System.Web.Services.Protocols.SoapException: Server was unable to
  process request. ---> System.ArgumentNullException: String reference not set to an
  instance of a String.  

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

尝试使用此代码段创建肥皂请求:

String YOUR_LOGIN_ID = "Your login id";
String YOUR_PASSWORD = "Your password";
int YOUR_ID = 1;
String YOUR_STR = "Your str value";

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

SoapObject authentication = new SoapObject(NAMESPACE, "authentication");
authentication.addProperty("LoginID", YOUR_LOGIN_ID);
authentication.addProperty("Password", YOUR_PASSWORD);

request.addProperty("authentication", authentication);
request.addProperty("Id", YOUR_ID);
request.addProperty("Str", YOUR_STR);