我正在使用带有WSDL的KSOAP2 3.0.0并尝试从Web服务调用名为“getAllPklNoSort”的函数。
现在我正在尝试使用android调用该函数。仅供参考,我在网络服务中有其他几个功能,另一个功能很好,而这个“getAllPklSort”没有。
另一个奇怪的是,这个“getAllPklSort”需要3个输入参数,即“email”,“page”和“itemPerPage”,这三个参数在使用NuSOAP客户端调用时工作正常。
这些代码总是返回一个XMLPullParserException,我无法弄清楚我在哪里出错。
这是代码,感谢任何帮助。
private static final String NAMESPACE = "urn:Server";
private static final String URL = "http://10.0.2.2/project/server.php";
private static String SOAP_ACTION = "urn:Server#getAllPklNoSort";
private static String METHOD_NAME = "Functions.getAllPklNoSort";
public void getSoap()
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("email");
pi.setValue(email);
pi.setType(String.class);
PropertyInfo pi2 = new PropertyInfo();
pi2.setName("page");
pi2.setValue(0);
pi2.setType(Integer.class);
PropertyInfo pi3 = new PropertyInfo();
pi3.setName("itemPerPage");
pi3.setValue(10);
pi3.setType(Integer.class);
request.addProperty(pi);
request.addProperty(pi2);
request.addProperty(pi3);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
try
{
httpTransport.call(SOAP_ACTION, envelope);
}
catch (Exception exception)
{
exception.printStackTrace();
}
答案 0 :(得分:1)
解决,使用
跟踪错误httpTransport.debug = true;
在调用之前,然后将其添加到catch:
System.out.println("Dump : "+httpTransport.responseDump);
转储消息将指导错误原因