40.9 MAKE_REQUEST Function

Use this function to invoke a SOAP style Web service with the supplied SOAP envelope returning the results in an XMLTYPE.

Syntax

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,
    p_credential_static_id IN VARCHAR2 DEFAULT NULL,
    p_token_url            IN VARCHAR2 DEFAULT NULL )
RETURN XMLTYPE;

Parameters

Table 40-4 MAKE_REQUEST Function Parameters

Parameter Description

p_url

The URL endpoint of the Web service.

p_action

The SOAP Action corresponding to the operation to be invoked.

p_version

The SOAP version, 1.1 or 1.2. The default is 1.1.

p_envelope

The SOAP envelope to post to the service.

p_username

The username if basic authentication is required for this service.

p_password

The password if basic authentication is required for this service

p_scheme

The authentication scheme, Basic (default) or AWS or Digest or OAUTH_CLIENT_CRED if supported by your database release.

p_proxy_override

The proxy to use for the request. The proxy supplied overrides the proxy defined in the application attributes.

p_transfer_timeout

The amount of time in seconds to wait for a response.

p_wallet_path

The file system path to a wallet if the URL endpoint is https. For example, file:/usr/home/oracle/WALLETS. The wallet path provided overrides the wallet defined in the instance settings.

p_wallet_pwd

The password to access the wallet.

p_https_host

The host name to be matched against the common name (CN) of the remote server's certificate for an HTTPS request.

p_credential_static_id

The name of a Web Credential (configured in Shared Components) to be used.

p_token_url

For token-based authentication flows (like OAuth2): The URL where to get the token from.

Example

The following example uses the make_request function to invoke a SOAP style Web service that returns movie listings. The result is stored in an 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