问题
I am trying to pass a parameter to my service, the code runs but the service never receives the parameters?? The call works, I simply add the variable then get it back, when getting it back I discover the webservice never received it!
Thanks for your help
final String SOAP_ACTION = "http://NathofGod.com/GetCategoryById";
final String METHOD_NAME = "GetCategoryById";
final String NAMESPACE = " http://NathofGod.com/";
final String URL = "http://10.0.2.2:4021/Service1.asmx";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi1 = new PropertyInfo();
pi1.setName("name");
pi1.setValue("the name");
pi1.setType(String.class);
pi1.setNamespace(NAMESPACE);
request.addProperty(pi1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE conn = new HttpTransportSE(URL);
try
{
conn.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject)envelope.getResponse();
}
catch(Exception e)
{
e.printStackTrace();
}
回答1:
not sure about why is not working, but I remember using it with
request.addProperty("name", "my_Name");
and it worked fine, otherwise you may wanna check the server side...
回答2:
This line of code was my issue!!!
envelope.dotNet = true;
REMOVE IT
回答3:
Try to debug it following the instructions on the wiki.
回答4:
I cleaned up the code a little and put it in a function. I'm not sure if something is different but this code works. Thanks for the responses.
public SoapObject soap() throws IOException, XmlPullParserException {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("name", "myname");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE conn = new HttpTransportSE(URL);
conn.call(SOAP_ACTION, envelope); //send request
SoapObject result=(SoapObject)envelope.getResponse();
return result;
}
回答5:
final String NAMESPACE = " http://NathofGod.com/";
Change to
final String NAMESPACE = "http://NathofGod.com/";
Remove the empty space and make then namespace as it is on your request XML. Please note that it is case sensitive as well.
来源:https://stackoverflow.com/questions/7814164/android-ksoap2-parameter-issues