KDSOAP 1.2
|
#include <KDSoapClientInterface.h>
Public Types | |
enum | SoapVersion { SOAP1_1 = 1, SOAP1_2 = 2 } |
enum | Style { RPCStyle, DocumentStyle } |
Public Member Functions | |
KDSoapClientInterface (const QString &endPoint, const QString &messageNamespace) | |
~KDSoapClientInterface () | |
KDSoapPendingCall | asyncCall (const QString &method, const KDSoapMessage &message, const QString &soapAction=QString(), const KDSoapHeaders &headers=KDSoapHeaders()) |
KDSoapMessage | call (const QString &method, const KDSoapMessage &message, const QString &soapAction=QString(), const KDSoapHeaders &headers=KDSoapHeaders()) |
void | callNoReply (const QString &method, const KDSoapMessage &message, const QString &soapAction=QString(), const KDSoapHeaders &headers=KDSoapHeaders()) |
void | setAuthentication (const KDSoapAuthentication &authentication) |
void | setHeader (const QString &name, const KDSoapMessage &header) |
void | setSoapVersion (SoapVersion version) |
SoapVersion | soapVersion () |
QString | endPoint () const |
void | setEndPoint (const QString &endPoint) |
QNetworkCookieJar * | cookieJar () const |
void | setCookieJar (QNetworkCookieJar *jar) |
QNetworkProxy | proxy () const |
void | setProxy (const QNetworkProxy &proxy) |
void | setStyle (Style style) |
Style | style () const |
KDSoapHeaders | lastResponseHeaders () const |
void | ignoreSslErrors () |
KDSoapClientInterface is a generic accessor class that is used to place calls to remote SOAP objects. This class is useful for dynamic access to remote objects: that is, when you do not have a generated code that represents the remote interface.
const int year = 2009; const QString endPoint = QLatin1String("http://www.27seconds.com/Holidays/US/Dates/USHolidayDates.asmx"); const QString messageNamespace = QLatin1String("http://www.27seconds.com/Holidays/US/Dates/"); KDSoapClientInterface client(endPoint, messageNamespace); KDSoapMessage message; message.addArgument(QLatin1String("year"), year); qDebug("Looking up the date of Valentine's Day in %i...", year); KDSoapMessage response = client.call(QLatin1String("GetValentinesDay"), message); qDebug("%s", qPrintable(response.arguments()[0].value().toString()));
Version of the SOAP protocol to use when sending requests.
WSDL style. See the "style" attribute for soap:binding, in the WSDL file. See http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/ for a discussion on the pros and cons of both styles.
In RPC style, the method name passed to call() or asyncCall() is sent as an xml element wrapping the message parameters.
In Document style, the KDSoapMessage represents the entire "document" to be sent, so the the method name passed to call() or asyncCall() is ignored, and the name of the KDSoapMessage is used as the main xml element name. This difference is mostly useful in the case of generated code, so that it can serialize existing complex types, and send them as messages.
KDSoapClientInterface::KDSoapClientInterface | ( | const QString & | endPoint, |
const QString & | messageNamespace | ||
) | [explicit] |
Creates a KDSoapClientInterface object associated with the end point endPoint
.
endPoint | the URL of the SOAP service, including http or https scheme, port number if needed, and path. Example: http://server/path/soap.php |
messageNamespace | the namespace URI used for the message and its arguments. Example: http://server/path, but could be any URI, it doesn't have to exist or even to be http, this is really just a namespace, which is part of the specification of the SOAP service. |
KDSoapClientInterface::~KDSoapClientInterface | ( | ) |
Destroy the object interface and frees up any resource used.
KDSoapPendingCall KDSoapClientInterface::asyncCall | ( | const QString & | method, |
const KDSoapMessage & | message, | ||
const QString & | soapAction = QString() , |
||
const KDSoapHeaders & | headers = KDSoapHeaders() |
||
) |
Calls the method method
on this interface and passes the arguments specified in message
to the method.
method | method name, without arguments. For instance "addContact" . Only used in RPC style. |
message | arguments for the method call |
soapAction | optional "SoapAction" header, see the specification of the SOAP service. |
headers | optional arguments which will be passed as <soap:Header> . |
This is an asynchronous call, so this function returns immediately. The returned KDSoapPendingCall object can be used to find out information about the reply. You should create a KDSoapPendingCallWatcher to connect to the finished() signal.
const int year = 2009; const QString endPoint = QLatin1String("http://www.27seconds.com/Holidays/US/Dates/USHolidayDates.asmx"); const QString messageNamespace = QLatin1String("http://www.27seconds.com/Holidays/US/Dates/"); KDSoapClientInterface* client= new KDSoapClientInterface(endPoint, messageNamespace); KDSoapMessage message; message.addArgument(QLatin1String("year"), year); qDebug("Looking up the date of Valentine's Day in %i...", year); KDSoapPendingCall pendingCall = client->asyncCall(QLatin1String("GetValentinesDay"), message); // create a watcher object that will signal the call's completion KDSoapPendingCallWatcher* watcher = new KDSoapPendingCallWatcher(pendingCall, this); connect(watcher, SIGNAL(finished(KDSoapPendingCallWatcher*)), this, SLOT(pendingCallFinished(KDSoapPendingCallWatcher*))); void MyClass::pendingCallFinished(KDSoapPendingCallWatcher* pendingCall) { KDSoapMessage response = pendingCall->returnMessage(); qDebug("%s", qPrintable(response.arguments()[0].value().toString())); }
KDSoapMessage KDSoapClientInterface::call | ( | const QString & | method, |
const KDSoapMessage & | message, | ||
const QString & | soapAction = QString() , |
||
const KDSoapHeaders & | headers = KDSoapHeaders() |
||
) |
Calls the method method
on this interface and passes the parameters specified in message
to the method.
method | method name, without arguments. For instance "addContact" . Only used in RPC style. |
message | arguments for the method call |
soapAction | optional "SoapAction" header, see the specification of the SOAP service. |
headers | optional arguments which will be passed as <soap:Header> . |
void KDSoapClientInterface::callNoReply | ( | const QString & | method, |
const KDSoapMessage & | message, | ||
const QString & | soapAction = QString() , |
||
const KDSoapHeaders & | headers = KDSoapHeaders() |
||
) |
Calls the method method
on this interface and passes the parameters specified in message
to the method.
method | method name, without arguments. For instance "addContact" . Only used in RPC style. |
message | arguments for the method call |
soapAction | optional "SoapAction" header, see the specification of the SOAP service. |
headers | optional arguments which will be passed as <soap:Header> . |
This is an asynchronous call, where the caller does not want to wait for a response. The method returns immediately, the call is performed later. No error handling is possible.
void KDSoapClientInterface::setAuthentication | ( | const KDSoapAuthentication & | authentication | ) |
Provide the necessary authentication for this service.
authentication | the authentication data |
void KDSoapClientInterface::setHeader | ( | const QString & | name, |
const KDSoapMessage & | header | ||
) |
Sets a persistent header, which will be sent with any subsequent SOAP call.
name | internal name, used to replace any existing header previously set with this name |
header | the actual message to be sent |
void KDSoapClientInterface::setSoapVersion | ( | KDSoapClientInterface::SoapVersion | version | ) |
KDSoapClientInterface::SoapVersion KDSoapClientInterface::soapVersion | ( | ) |
Returns the version of SOAP being used in this instance.
QString KDSoapClientInterface::endPoint | ( | ) | const |
Returns the end point of the SOAP service.
void KDSoapClientInterface::setEndPoint | ( | const QString & | endPoint | ) |
Sets the end point of the SOAP service.
endPoint | the URL of the SOAP service, including http or https scheme, port number if needed, and path. Example: http://server/path/soap.php |
QNetworkCookieJar * KDSoapClientInterface::cookieJar | ( | ) | const |
Returns the cookie jar to use for the HTTP requests. If no cookie jar was set by setCookieJar previously, a default one will be returned, which belongs to the client interface (no need to delete it).
void KDSoapClientInterface::setCookieJar | ( | QNetworkCookieJar * | jar | ) |
Sets the cookie jar to use for the HTTP requests. The ownership of the cookie jar is NOT transferred, so that it is possible to share the same cookie jar between multiple client interfaces.
QNetworkProxy KDSoapClientInterface::proxy | ( | ) | const |
Returns the network proxy used for the HTTP requests.
void KDSoapClientInterface::setProxy | ( | const QNetworkProxy & | proxy | ) |
Sets the network proxy used for the HTTP requests.
void KDSoapClientInterface::setStyle | ( | KDSoapClientInterface::Style | style | ) |
Sets the WSDL style used by this service.
KDSoapClientInterface::Style KDSoapClientInterface::style | ( | ) | const |
Returns the WSDL style used by this service.
KDSoapHeaders KDSoapClientInterface::lastResponseHeaders | ( | ) | const |
Returns the headers returned by the last synchronous call(). For asyncCall(), use KDSoapPendingCall::returnHeaders().
void KDSoapClientInterface::ignoreSslErrors | ( | ) |
Asks Qt to ignore ssl errors in https requests. Use this for testing only!