0

我正在尝试让 ksoap2 在 android 上运行。我现在至少花了 10 个小时阅读论坛帖子和文档。只需查询一些方法,例如 getServerTime ,我不必发送任何值,就可以了。我的目标是发送数据并接收响应。例如:发送城市名称,获取城市时间。

我在这个网站上练习:http: //www.nanonull.com/TimeService/TimeService.asmx

这是我的代码:

  String METHOD_NAME = "getCityTime";
  String SOAP_ACTION = "http://www.Nanonull.com/TimeService/getCityTime";
  String NAMESPACE = "http://www.nanonull.com/TimeService/";
  String URL = "http://www.nanonull.com/TimeService/TimeService.asmx";

  SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

  request.addProperty("city", "Chicago");

  SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11);

  envelope.setOutputSoapObject(request);

  HttpTransportSE httpTransport = new HttpTransportSE(URL);
  try {
   httpTransport.call(SOAP_ACTION, envelope);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (XmlPullParserException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } // This sends a soap

  System.out.println(envelope.bodyIn.toString());

这是我得到的错误(envelope.bodyIn.toString()):

SoapFault - faultcode: 'soap:Server'
faultstring: 'Server was unable to process request. ---> Object reference not set to an
instance of an object.' faultactor: 'null' detail: org.kxml2.kdom.Node@435b9cf8

帮助将不胜感激。

4

4 回答 4

1

我得到了答案!服务器有问题,服务器端有问题!:(

我尝试了另一项服务(http://footballpool.dataaccess.eu/data/info.wso?),它就像一个魅力。

于 2010-06-23T08:03:22.440 回答
1

尝试

   envelope.dotNet = true;
于 2010-06-22T15:05:47.360 回答
0
 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

soapobjet sp = new soapobject("http://www.nanonull.com/TimeService/","getCityTime");
sp.addproperty("city", "Chicago");

request.addsoapobject(sp);
于 2012-02-08T10:53:08.167 回答
0

我写了一篇关于这个话题的文章

http://www.helloandroid.com/tutorials/using-ksoap2-android-and-parsing-output-data

于 2010-06-28T10:16:31.647 回答