1

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

该调用将 MSISDN 值发送到 Web 服务并应返回一个字符串。我可以在 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 服务返回的值?

4

1 回答 1

1

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

    Object response = envelope.getResponse();
    parameterString = response.toString();
于 2010-06-01T08:43:54.857 回答