DocBook|Search
Class Reference
%SOAP.WebClient
   
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [BASEXML] >  [%SOAP] >  [WebClient]
Private  Storage  

abstract class %SOAP.WebClient extends %SOAP.WebBase

SOAP Web Client class.
Properties of this class that begin with Http are passed through to the %Net.HttpRequest instance used by the class. The only supported use of this class is as the super class for a SOAP Web Client. Parameters, properties and methods may be used by the application.

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
3 24 10


Summary

Properties
AddressingIn AddressingOut Attachments BodyId
BodyXmlId ContentId ContentLocation ContentType
GzipOutput HTTPVersion HeadersIn HeadersOut
HttpAccept202 HttpFollowRedirect HttpPassword HttpProxyAuthorization
HttpProxyHTTPS HttpProxyPort HttpProxySSLConnect HttpProxyServer
HttpProxyTunnel HttpRequest HttpRequestHeaderCharset HttpRequester
HttpResponse HttpUsername ImportHandler IsMTOM
Location MTOMRequired OpenTimeout OutputTypeAttribute
Password RequestMessageStart ResponseAttachments ResponseContentId
ResponseContentLocation SAXFlags SSLConfiguration SSLError
SecurityContextToken SecurityIn SecurityNamespace SecurityOut
SessionCookie SoapBinary SoapBinaryCharset SoapFault
SoapVersion Timeout Transport Username
WriteSOAPBodyMethod

Methods
%%OIDGet %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA %IsModified
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject CancelSecureConversation GetBodyId NormalizeName
ResetHttpHeaders SecurityOutGet SecurityOutSet SendSOAPRequest
SetHttpHeader StartSecureConversation WSCheckSignatureConfirmation WSSecurityLogin

Subclasses
%CSP.Monitor.Client %Net.OpenAM.IdentityServicesImplPort %SOAP.WebRequest
%Studio.SourceControl.ItemSetWS %WebStress.Comms.Client

Parameters

• parameter SOAPACTIONQUOTED = 0;
If the web client has the parameter SOAPACTIONQUOTED=1, then the web client will quote the SOAPAction value for SOAP 1.1. The default will be SOAPACTIONQUOTED=0 in order to be compatible with earlier versions of Cache.
• parameter SOAPBINARYCHARSET;
Default charset for remote SOAP binary server. This parameter is by default used to dertermine if binary message needs to be UTF8 encoded.
• parameter SOAPVERSION;
The SOAPVERSION parameter specified the version of SOAP which is supported. Possible values for the version are 1.1 and 1.2. The default value "" specifies that both SOAP 1.1 and SOAP 1.2 are supported.

Properties

• property ContentType as %String [ Transient ];
Content-Type to be used for transport class
• property GzipOutput as %Boolean [ InitialExpression = ..#GZIPOUTPUT,Transient ];
If the GzipOutput property is set to true (1), then the output request will be compressed using GZIP. The default value for GzipOutput is the GZIPOUTPUT parameter.
• property HTTPVersion as %String [ InitialExpression = "1.1",Transient ];
The HTTP version we should report to the server when making the request. Defaults to '1.1'.
• property HttpAccept202 as %Boolean [ Transient ];
If HttpAccept202=0 (default) we follow the WS-I Basic Profile which calls for HTTP response status 202 to be used only if no SOAP envelope is in the HTTP response and return an error if no envelope.
If HttpAccept202=1, HTTP status 202 will treated just the same as HTTP status 200. The HttpResponse.StatusCode property may be checked to see if 202 was actually returned.
• property HttpFollowRedirect as %Boolean [ Transient ];
If true then automatically follow redirection requests from the web server. These are signaled by the HTTP status codes of the form 3xx. The default is true.
• property HttpPassword as %String [ Transient ];
If the Username and Password are defined then this information will be send using Basic authentication to the web server. If you manually set the Authorization header this property will be ignored.
• property HttpProxyAuthorization as %String [ Transient ];
Sets/get the 'Proxy-Authorization:' header field in the Http request.

A user agent that wishes to authenticate itself with a proxy-- usually, but not necessarily, after receiving a 407 response--may do so by including an Proxy-Authorization header field with the request. The Proxy-Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested.

• property HttpProxyHTTPS as %Boolean [ Transient ];
HttpProxyHTTPS property is ignored since the use of SSL to the end point is now determiend from the url. If using a proxy server and this is true then it issues a request for an https page rather than the normal http page. This allows a proxy server that support https to support a secure connection from this %Net.Httprequest class.
• property HttpProxyPort as %String [ Transient ];
The port to connect to the proxy web server on. This is often port 8080 (the default).

You can specify a default proxy server for this namespace or for this Caché by setting ^SYS("HttpRequest","ProxyPort") or ^%SYS("HttpRequest","ProxyPort").

• property HttpProxySSLConnect as %Boolean [ Transient ];
SSL connection to the proxy server will be used if the HttpProxySSLConnect property = 1. Use of SSL to the eventual endpoint is determined by the protocol part of web service's location url.
• property HttpProxyServer as %String [ Transient ];
If you need to make SOAP request through a proxy server you specify the proxy server host name in this property. If this property is defined then the http request will be directed at this machine and it will forward the request to the machine at Location and return the response.

You can specify a default proxy server for this namespace or for this Caché by setting ^SYS("HttpRequest","ProxyServer") or ^%SYS("HttpRequest","ProxyServer").

• property HttpProxyTunnel as %Boolean [ Transient ];
If true then use the HTTP CONNECT command to establish a tunnel through the proxy to the target HTTP server. The address of the proxy server is taken from HttpProxyServer and HttpProxyPort. If the endpoint URL has the https: protocol, then once the tunnel is established we will negociate the SSL connection.
• property HttpRequest as %Net.HttpRequest [ Transient ];
If specified, the caller assigned %Net.HttpRequest instance is used for the web service request.
• property HttpRequestHeaderCharset as %String [ Transient ];
The character set to send the HTTP request header in. According to the RFC the HTTP header should only contain ASCII characters as the behaviour with characters outside this range is unspecified. This class defaults to using UTF-8 as this leaves all the ASCII characters unchanged. You should never need to change this parameter.
• property HttpRequester as %String(VALUELIST=",SAX,CACHE");
Deprecated. %Net.HttpRequester will always be used as the network access layer
• property HttpResponse as %Net.HttpResponse [ Transient ];
The HttpResponse property is set to the %Net.HttpResponse instance for the response to the web service request. This property is only set when the %Net.HttpRequest object is used to make the request, i.e. when HttpRequestor="CACHE" (the default).
• property HttpUsername as %String [ Transient ];
If the Username and Password are defined then this information will be send using Basic authentication to the web server. If you manually set the Authorization header this property will be ignored.
• property OpenTimeout as %Integer [ Transient ];
If specified is the amount of time we will wait for the TCP/IP connection to open. If not specified then it will default to Timeout value.
• property SSLConfiguration as %String [ Transient ];
The name of the activated TLS/SSL configuration to use for https requests.
• property SSLError as %String;
If request uses an SSL connection and a SSL handshake error has occurred, then SSLError contains text describing the SSL error.
• property SoapBinary as %Boolean [ InitialExpression = ..#SOAPBINARY,Transient ];
If SoapBinary is 1, then the web client will use proprietary binary SOAP protocol. The SoapBinary property defaults to the SOAPBINARY parameter.
• property SoapBinaryCharset as %String [ InitialExpression = ..#SOAPBINARYCHARSET,Transient ];
Property to allow override of charset for remote SOAP binary server. This parameter is used to dertermine if binary message needs to be UTF8 encoded. The default for SoapBinaryCharset is the SOAPBINARYCHARSET parameter.
• property SoapVersion as %String;
The SoapVersion property is either "1.1" or "1.2" and indicates the SOAP version for the current invocation.

For a SOAP web client, SoapVersion specifies the SOAP version that is used for the request.
If SoapVersion="" (the default), then "1.1" is used if SOAPVERSION="1.1" or "" (the default). Otherwise "1.2" is used if SOAPVERSION="1.2".
After the response is received, it is the version of the response. This, SoapVersion should be set before each method call.

Methods

• method CancelSecureConversation() as %Status
Cancel the this client's current WS-SecureConversation token specified by the SecurityContextToken property. Clear the SecurityContextToken propery. If SecurityOut header has not been set, then a minimal SecurityOut using the token for signing is created. The SecurityOut header used for WS-StartSecureConversation will be cleared after when this method is complete.
• method ResetHttpHeaders() as %Status
Clear all previously set Http headers.
• method SendSOAPRequest(action As %String, oneWay As %Boolean = 0, request As %SOAP.RequestMessage, methodName As %String) as %Status
Send a %SOAP.RequestMessage subclass instance as a request message The arguments to this method are:
Action is the SOAPAction for the SOAP request.
If OneWay is 1 (true) then no response is expected.
Request is the %SOAP.RequestMessage subclass instance.
MethodName is an optional name of the method being called which is used to select the WS-Policy.
The response message node will be set in the ResponseDocuemtn and ResponseNodeId properties of %SOAP.RequestMessage.
• method SetHttpHeader(name As %String, value As %String) as %Status
Add a header to the http request. For example:
	Do httprequest.SetHeader("MyHeader","Data to display")
The header name is case insensitive and this class forces it to upper case so when the Http request is issued it will output the header as:

MYHEADER: Data to display

Note that headers such as Content-Type, Content-Encoding, and Content-Length are part of the entity body rather than the http main headers and as such as forwarded to the ContentType, ContentEncoding and trying to set the Content-Length is just ignored as this is a read only property. Also any attempt to set the 'Connection' header is ignored at this request class does not support persistent connections.

• method StartSecureConversation(RST As %SOAP.WST.RequestSecurityToken) as %Status
Start a WS-SecureConversation session by sending the specified RequestSecurityToken body to the web service and obtaining a RequestSecurityTokenResponse. If ComputedKey is to be used with both client and server entropy, ComputedKeySize property of the RequestSecurityToken object should be set before calling StartSecureConversation. RequireServerEntropy property of the RequestSecurityToken object should be set before calling StartSecureConversation.

The SecurityContextToken thus returned will be saved in the SecurityContextToken property. Future calls to this client may use this token if needed for the WS-Policy or by explicitly adding to SecurityOut by calling AddSecurityElement.

The SecurityOut header needs to be set for proper security for the RequestSecurityToken request. The SecurityOut header used for WS-StartSecureConversation will be cleared after when this method is complete.
• method WSCheckSignatureConfirmation() as %Boolean
Test for valid WS-Security 1.1 SignatureConfirmation elements in response message. Return true if valid.
• method WSSecurityLogin(Username As %String, Password As %String) as %Status
The WSSecurityLogin method adds the WS-Security Security header with /UsernameToken. Only the /UsernameToken/Username and /UsernameToken/Password fields are supported. Signing and/or encryption as specified by WS-Security is not supported. These facilities are expected to be implemented by the use of SSL.