调用肥皂网络服务时,序言中不允许有内容

问题描述 投票:0回答:1

我使用以下代码来获取结果,但由于某种原因,我收到此错误:第 1 行错误:序言中不允许内容。 (第 134 行,文件“Code”) 在本例中为

var xmlResult = XmlService.parse(结果).getRootElement();

var xml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v1=\"http://openclinica.org/ws/studySubject/v1\" xmlns:bean=\"http://openclinica.org/ws/beans\">"
       +"<soapenv:Header>"
        +"<wsse:Security soapenv:mustUnderstand=\"1\" xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\">"
        +"<wsse:UsernameToken wsu:Id=\"UsernameToken-27777511\" xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\">"
        +"<wsse:Username>yyyy</wsse:Username>"
        +"<wsse:Password>xxxxx</wsse:Password>"
        +"</wsse:UsernameToken>"
        +"</wsse:Security>"
       +"</soapenv:Header>"
       +"<soapenv:Body>"
          +"<v1:listAllByStudyRequest>"
             +"<bean:studyRef>"
                +"<bean:identifier>PROSPER2</bean:identifier>"
             +"</bean:studyRef>"
          +"</v1:listAllByStudyRequest>"
       +"</soapenv:Body>"
    +"</soapenv:Envelope>";


      var options =
      {
        "method" : "post",
        "contentType" : "text/xml",
        "payload" : xml
      };

      var result = UrlFetchApp.fetch("http://89.221.253.174:8080/OpenClinica-ws/ws/studySubject/v1/studySubjectWsdl.wsdl", options);

      var xmlResult = XmlService.parse(result).getRootElement();


      Logger.log(xmlResult);

知道为什么这不起作用,我正在使用谷歌应用程序脚本来执行此代码;

xml web-services soap google-apps-script wsdl
1个回答
0
投票

您可以参考此主题。检查xml文件中是否有像这样的垃圾字符。 here 还指出,此错误可能与实际 XML 内容之前的字节顺序标记 (BOM) 有关。您需要解析返回的 String 并丢弃 BOM,以便 SAXParser 可以正确处理文档。

© www.soinside.com 2019 - 2024. All rights reserved.