我的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.
任何人都可以帮助我。
答案 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);