我将KSOAP2 3.0.0与WSDL一起使用,并尝试从Web服务中调用名为“ getAllPklNoSort”的函数。
现在,我正在尝试使用android调用该函数。仅供参考,我在Web服务中还有其他几个功能,其他功能很好,而“ getAllPklSort”却不行。
另一个奇怪的事情是,此“ getAllPklSort”需要3个输入参数,即“ email”,“ page”和“ itemPerPage”,并且使用NuSOAP客户端调用时,这3个参数可以正常工作。
这些代码总是返回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();
}
最佳答案
解决,使用跟踪错误
httpTransport.debug = true;
在调用之前,然后添加以下内容:
System.out.println("Dump : "+httpTransport.responseDump);
转储消息将指导错误原因