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の場合はウォレットへのファイル・システム・パス。 指定されたウォレットのパスは、インスタンス設定で定義したウォレットより優先されます。 |
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;
親トピック: APEX_WEB_SERVICE