2010-06-01 60 views
1

我无法弄清楚为什么我无法从使用kso​​ap2的Web服务调用中获得响应。ksoap2不工作

该调用向Web服务发送MSISDN值,并返回一个字符串。我可以在Web服务上看到它被调用并返回字符串,但无法在设备上看到返回的字符串。

我的代码如下:

  SoapObject request = new SoapObject("http://fc.mobiledatacapture/", "getParameters"); 
      request.addProperty("arg0", MSISDN); 
      SoapSerializationEnvelope envelope = 
       new SoapSerializationEnvelope(SoapSerializationEnvelope.VER10); 

      envelope.bodyOut = request; 

      HttpTransport ht = new HttpTransport(url); 

      //call web service method 
      ht.call("\"getParameters\"", envelope); 

      SoapObject response = (SoapObject)envelope.getResponse(); //marker 

      parameterString = (String) response.getProperty(0); 

,所以我知道的是,Web服务被调用,但我从来没有得到一个结果为parameterString。

添加了一些打印输出和错误检查后,我发现代码没有通过注释 - “// marker”。在该行之前,我做了一个检查,看看信封是否为空,而不是。然而,这个代码块捕获一个空错误。

所以我认为这意味着响应是空的,但我怎么才能得到Web服务返回的值?

回答

1

不用担心。我改变了代码如下,我得到了我的网络服务返回的字符串:

Object response = envelope.getResponse(); 
    parameterString = response.toString();