1

bash シェルから icCube から管理 API を呼び出す必要があります。次のようなSOAPコマンドを送信する最も簡単な方法は何ですか:

    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
     <soap:Body>
       <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
         <Command>
           <Statement xsi:type="xsd:string">'"$command"'</Statement>
         </Command>
       </Execute>
     </soap:Body>
    </soap:Envelope>

その上、基本認証 ( user / pwd ) を処理する方法は?

4

1 に答える 1

1

ドキュメントで入手可能な Perl サンプル: http://www.iccube.com/support/documentation/user_guide/using/cube_management.php (ドキュメントの最後)。

「--user」引数を使用して処理される Curl の基本認証

バッシュのサンプル:

  #!/bin/bash

  URL="http://localhost:8282/icCube/xmla"
  COMMAND="LIST_SCHEMA"

  echo ${COMMAND}

  curl --header "Content-Type: text/xml;charset=UTF-8" \
  --header "SOAPAction:urn:schemas-microsoft-com:xml-analysis#Execute" \
  --user admin:admin --data @- ${URL} <<EOF
  <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
    <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
      <Command>
          <Statement xsi:type="xsd:string">${COMMAND}</Statement>
      </Command>
    </Execute>
      </soap:Body>
  </soap:Envelope>
  EOF

注:終了 EOF の後に空白がないことを確認してください。空白がない場合、API は SOAP 構文エラーを返します。

于 2015-10-16T10:53:36.687 に答える