1

我的 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.  

任何人都可以请帮助我。

4

1 回答 1

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);
于 2012-05-14T11:10:55.290 回答