私はここで提供されたアドバイスに従いましたが、それは魅力のように機能しました. 現在、サーバーに接続してGetFunctionalityTestという名前のメソッドを呼び出しています。これへの唯一の入力は文字列で、これはGetFunctionalityTest.mファイルで確認できます。ここまでは順調ですね。
次に、ファイルGetSections.mによると署名が次のようなGetSectionsという名前の実際のサービスを呼び出そうとしました。
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>
私の問題は、承認の構文を指定できないことです。私が理解している限り、どういうわけか2つの文字列で構成されているはずですが、うまくいきません。以下のように合成してみました。
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ではなくArrayOfStringの定義はありません。MatLabのドキュメントにヒットがないので、サーバーが定義するものだと思います。
- 認証用の資格情報を指定するにはどうすればよいですか?
- MatLab がAuthorizationをどのようにマップするかはどこで調べることができますか?