60.13 MAKE_REQUESTファンクションのシグネチャ1

このファンクションは、指定されたSOAPエンベロープを使用してSOAP形式のWebサービスを起動し、XMLTYPEで結果を戻します。

構文

APEX_WEB_SERVICE.MAKE_REQUEST (
    p_url                  IN VARCHAR2,
    p_action               IN VARCHAR2 DEFAULT NULL,
    p_version              IN VARCHAR2 DEFAULT '1.1',
    p_envelope             IN CLOB,
    p_username             IN VARCHAR2 DEFAULT NULL,
    p_password             IN VARCHAR2 DEFAULT NULL,
    p_scheme               IN VARCHAR2 DEFAULT 'Basic',
    p_proxy_override       IN VARCHAR2 DEFAULT NULL,
    p_transfer_timeout     IN NUMBER   DEFAULT 180,
    p_wallet_path          IN VARCHAR2 DEFAULT NULL,
    p_wallet_pwd           IN VARCHAR2 DEFAULT NULL,
    p_https_host           IN VARCHAR2 DEFAULT NULL )
RETURN sys.xmltype;

パラメータ

パラメータ 説明
p_url WebサービスのURLエンドポイント。
p_action 起動する操作に対応するSOAPアクション。
p_version SOAPのバージョン(1.1または1.2)。デフォルトは、1.1です。
p_envelope サービスにポストするSOAPエンベロープ。
p_username このサービスに基本認証が必要な場合はユーザー名。
p_password このサービスに基本認証が必要な場合はパスワード。
p_scheme 認証スキーム。ご使用のデータベース・リリースでサポートされている場合、Basic (デフォルト)、AWS、DigestまたはOAUTH_CLIENT_CREDのいずれか。
p_proxy_override リクエストに使用するプロキシ。指定したプロキシは、アプリケーション属性で定義したプロキシより優先されます。
p_transfer_timeout レスポンスを待機する時間(秒単位)。
p_wallet_path

URLエンドポイントがHTTPSの場合はウォレットへのファイル・システム・パス。file:/usr/home/oracle/WALLETSなど

指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。

p_wallet_pwd ウォレットにアクセスするためのパスワード。
p_https_host HTTPS要求に対してリモート・サーバーの証明書の共通名(CN)と照合するホスト名。

戻り値

XMLTYPE内のSOAPサービス・レスポンス。

例1

次の例では、ムービーのリストを戻すSOAP形式のWebサービスを起動します。結果はXMLTYPEで格納されます。

DECLARE
    l_envelope  CLOB;
    l_xml       XMLTYPE;
BEGIN
    l_envelope := ' <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://www.ignyte.com/whatsshowing"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <tns:GetTheatersAndMovies>
            <tns:zipCode>43221</tns:zipCode>
            <tns:radius>5</tns:radius>
        </tns:GetTheatersAndMovies>
    </soap:Body>
</soap:Envelope>';

l_xml := apex_web_service.make_request(
    p_url => ' http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx',
    p_action => ' http://www.ignyte.com/whatsshowing/GetTheatersAndMovies',
    p_envelope => l_envelope
);
END;

例2

この例では、XMLTYPEを戻すSOAPサービスを起動します。

DECLARE
    l_xml sys.xmltype;
BEGIN
    l_xml := apex_web_service.make_request(
        p_url            => 'http://{host}:{port}/path/to/soap/service/',
        p_action         => 'doSoapRequest',
        p_envelope       => '{SOAP envelope in XML format}' );
END;