我无法弄清楚为什么我无法通过使用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服务返回的值?
答案 0 :(得分:1)
不用担心。我更改了代码如下,我得到了我的Web服务返回的字符串:
Object response = envelope.getResponse();
parameterString = response.toString();