4

我遵循了这里提供的建议,它就像一个魅力。现在,我正在连接到服务器并调用名为GetFunctionalityTest的方法。它的唯一输入是一个字符串,可以在GetFunctionalityTest.m文件中看到。到目前为止,一切都很好。

然后我尝试调用名为 GetSections 的真实服务根据文件GetSections.m其签名如下。

function GetSectionsResult = GetSections(obj,auth)
% GetSections(obj,auth)
% Input: auth = (Authorize)
% Output: GetSectionsResult = (ArrayOfString)

values = { auth, };
names = { 'auth', };
types = { '{WSPro.HostingWebservice}Authorize', };

soapMessage = createSoapMessage( ...
  'WSPro.HostingWebservice', ...
  'GetSections', values,names,types,'document');
response = callSoapService( obj.endpoint, ...
  'WSPro.HostingWebservice/GetSections', soapMessage);
GetSectionsResult = parseSoapResponse(response);

服务器提供的定义如下。

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi=...>
  <soap:Body>
    <GetSections xmlns="WSPro.HostingWebservice">
      <auth>
        <uid>string</uid>
        <pw>string</pw>
      </auth>
    </GetSections>
  </soap:Body>
</soap:Envelope>

我的问题是我无法指定授权语法。据我了解,它应该以某种方式由两个字符串组成,但我还没有让它工作。我试图将它们组合如下。

myAuthorization = ['user', 'pass'];
myAuthorization = {'user', 'pass'};
myAuthorization = ['user' 'pass'];
myAuthorization = {'user' 'pass'};

没有任何帮助。我刚收到一堆错误。

使用 callSoapService 时出错(第 147 行)
未指定故障:SOAP 故障:服务器无法处理请求。
---> 参数化查询
'(@uid nvarchar(99)) SELECT PassW FROM UserData WHERE UserId = @' 需要未提供的参数 '@uid'。

我浏览了为我自动创建的所有文件,并且没有Authorize not ArrayOfString的定义。我猜这是服务器定义的东西,因为我在 MatLab 文档中没有得到任何点击。

  1. 如何指定授权凭据?
  2. 我在哪里可以查看 MatLab 如何映射Authorization
4

1 回答 1

0

如上所述:

SOAP 身份验证通过 SOAP 标头而不是 SOAP 正文进行。此链接可能会让您了解 SOAP XML 在身份验证的情况下应该如何看待:

Web服务soap头认证

于 2014-10-03T06:51:10.843 回答