繁体   English   中英

SAS Web服务:对SOAP请求的错误响应

[英]SAS Webservice: wrong response to a SOAP request

我有一个注册的存储过程,该过程将两个数字相加。

%let sum = %SYSEVALF(&NUM1 + &NUM2); 

data _null_; 
file _webout;
PUT "&SUM";
RUN; 

已注册存储过程以交付流,两个输入变量都注册为数字,_webout输出参数注册为字符串(此参数的注册不会改变任何内容)。

没有其他内容。

我正在使用SOAPUI基于自动生成的WSDL文件创建SOAP信封。 香皂要求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"      xmlns:biw="http://www.sas.com/xml/namespace/biwebservices">
  <soapenv:Header/>
    <soapenv:Body>
      <biw:wSDL_Test>
         <biw:parameters>
            <!--Optional:-->
        <biw:NUM1>1</biw:NUM1>
        <!--Optional:-->
        <biw:NUM2>1</biw:NUM2>
       </biw:parameters>
    </biw:wSDL_Test>
  </soapenv:Body>
</soapenv:Envelope>

我希望得到一个数字2的响应,但我得到的却是:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 <soapenv:Body>
  <n:wSDL_TestResponse xmlns:n="http://www.sas.com/xml/namespace/biwebservices">
     <n:wSDL_TestResult>
        <n:Streams>
           <n:_WEBOUT contentType="text/html;charset=windows-1252">
              <n:Value>Mgo=</n:Value>
           </n:_WEBOUT>
        </n:Streams>
     </n:wSDL_TestResult>
    </n:wSDL_TestResponse>
   </soapenv:Body>
 </soapenv:Envelope>

无论添加任何两个数字,都将返回值“ Mgo =“。 如果我调用从SAS EG或从中间层Web存储过程应用程序转换为Web服务的存储过程,则会得到正确的响应,并具有所需的总和。

这是我的第一个Web服务,我将其用作其他东西的POC。 我觉得它必须非常简单,但是我不确定它是什么。 任何帮助表示赞赏!

此致Vasilij

它是2,只是base64编码。 转到此处 ,在“解码”框中键入Mgo =。

我相信SOAPUI中有一个选项可以解码响应。 自从我使用它已有几年了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM