Java Ksoap2响应存在问题
嘿,大家好,我在ksoap2上遇到了一个小问题,并且得到了响应。我在Blackberry客户端上有以下代码:Java Ksoap2响应存在问题,java,web-services,blackberry,ksoap2,Java,Web Services,Blackberry,Ksoap2,嘿,大家好,我在ksoap2上遇到了一个小问题,并且得到了响应。我在Blackberry客户端上有以下代码: private boolean AddVoiceNote() { _webMethod = "AddVoiceNote"; _soapAction.concat(_webMethod); Boolean response = null; SoapObject methodCall = new SoapObject(_serviceNameSpace, _
private boolean AddVoiceNote()
{
_webMethod = "AddVoiceNote";
_soapAction.concat(_webMethod);
Boolean response = null;
SoapObject methodCall = new SoapObject(_serviceNameSpace, _webMethod);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.bodyOut = methodCall;
soapEnvelope.dotNet = false;
soapEnvelope.encodingStyle = SoapSerializationEnvelope.XSD;
soapEnvelope.setOutputSoapObject(methodCall);
methodCall.addProperty("name", _voiceNote.get_nombre());
methodCall.addProperty("comment", _voiceNote.get_comentario());
methodCall.addProperty("audio", Base64.encode(_voiceNote.get_audioArray()));
methodCall.addProperty("id", String.valueOf(_voiceNote.get_userId()));
methodCall.addProperty("postTwitter", String.valueOf(_voiceNote.is_twitterPost()));
methodCall.addProperty("postFacebook", String.valueOf(_voiceNote.is_facebookPost()));
HttpTransport transport = new HttpTransport(_serviceURL);
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
try {
transport.call(_soapAction, soapEnvelope);
SoapObject responseSoap = (SoapObject)soapEnvelope.getResponse();
response = (Boolean)responseSoap.getProperty("return");
System.out.println(responseSoap.toString());
return response.booleanValue();
} catch (IOException e) {
return false;
} catch (XmlPullParserException e) {
return false;
}
}
我遇到的问题是正确地获取响应,我在尝试获取它时得到一个ClassCastException,调试器只是退出了该方法,你知道如何修复这个问题吗?哦,下面是我从Web方法得到的响应xml:
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:AddVoiceNoteResponse xmlns:ns2="http://WebService/">
<return>true</return></ns2:AddVoiceNoteResponse>
</S:Body>
</S:Envelope>
真的
对不起,我没有写评论的特权,否则我不会为这个小提示发布答案
实际上,信封有一个方法“stringToBoolean”
问候语什么是ClassCastException?发生在这一行SoapObject ResponseSAP=(SoapObject)soapEnvelope.getResponse();只是说ClassCastException在将强制转换从SoapObject更改为Object y之后,请注意getResponse()为null,现在我尝试了:(soapEnvelope.getResponse()).toString()并得到了表示“true”的字符串,但是如果我想要实际的布尔值呢?因为在eclipse中,由于某些原因,我无法执行Boolean.getBolean(string)或.valueOf(string)
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><ns2:AddVoiceNoteResponse xmlns:ns2="http://WebService/">
<return>true</return></ns2:AddVoiceNoteResponse>
</S:Body>
</S:Envelope>