2 hero yang hero_yang 于 2015.07.24 10:50 提问

android 通过ksoap2调用webservice

就是报这个错:org.xmlpull.v1.XmlPullParserException: expected: END_TAG {http://schemas.xmlsoap.org/soap/envelope/}Body (position:END_TAG </{http://schemas.xmlsoap.org/soap/envelope/}SOAP-ENV:Fault>@2:212 in java.io.InputStreamReader@419f6958)

Java代码:
SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelop.setOutputSoapObject(soapObject);
envelop.dotNet = true;
envelop.bodyOut = soapObject;
// 注册envelope

new MarshalBase64().register(envelop);
HttpTransportSE transport = new HttpTransportSE(WSDL);
try {
transport.debug = true;
transport.call(NameSpace + Name, envelop); //程序跑到这儿就报错
nlvbyte = (byte[]) envelop.getResponse();

} catch (Exception e) {
e.printStackTrace();
}

    xml代码:
    <message name="GetFileResponse"><part name="file" type="xsd:base64Binary" /> </message>

请哪位大神帮帮忙,比较着急,谢谢咯

7个回答

jimhjj
jimhjj   2015.07.24 10:52

都说了END_TAG ,你们家xml,上下标签不对齐的吗?

hero_yang
hero_yang 对齐了的呀,如果type返回值是string类型就没有问题,返回值是base64Binary就会报这个错误
2 年多之前 回复
CSDNXIAOC
CSDNXIAOC   2015.07.24 10:53

1.指定 WebService 的命名空间和调用方法;

   String name_space = "";(命名空间)
   String method_name = "method_name";
   String endpoint = ""(url的完整路径)
   String soap_action = "http://WebXml.com.cn";(一般设置为null)......
答案就在这里:android ksoap2调用webservice
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

jimhjj
jimhjj   2015.07.24 10:53

试试

jimhjj
jimhjj   2015.07.24 10:55
 <part name="file" type="xsd:base64Binary" ></part >
hero_yang
hero_yang   2015.07.24 10:59

这个xml文件不是我写的。我只是调用,其他地方需要调用,修改不了,我很怀疑是base64Binary的问题,但是就是不知道咋解决

jimhjj
jimhjj   2015.07.24 11:03

那只能是编码的问题了,你看看是不是转成ASCII

hero_yang
hero_yang   2015.07.24 11:08

应该这么转啊?transport.call(NameSpace + Name, envelop); //程序跑到这儿就报错

Csdn user default icon
上传中...
上传图片
插入图片