[英]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.