SAS Webservice:对SOAP请求的错误响应

时间:2014-10-10 16:36:51

标签: web-services soap wsdl sas

我有一个注册的存储过程,它会加两个数字。

%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服务的存储进程,我会获得具有所需总和的正确响应。

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

此致 Vasilij

1 个答案:

答案 0 :(得分:1)

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

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