Simple SOAP client concept
Simple example using an echo service and looking for the transaction faults.
$ser typeof Series
$ser.add("Helo World!!!")
$s = SOAPClient.create("http://nagoya.apache.org:5049/axis/services/echo")
$r = $s.execute("http://soapinterop.org/", "echoString", $ser)
if $s.isFault then [
print $s.getError/details]
print $r
This request will produce the following SOAP XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:echoString xmlns:ns1="http://soapinterop.org/">
<arg0 xsi:type="xsd:string">Hello World!</arg0>
</ns1:echoString>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Simple example using the Google search service with parameters in Map.
$map typeof Map
$map.add("key", "YOUR DEVELOPER KEY HERE!!!")
$map.add("q", "Antal Attila atech")
$map.add("start", 0)
$map.add("maxResults", 10)
$map.add("filter", true)
$map.add("restrict", "")
$map.add("safeSearch", false)
$map.add("lr", "")
$map.add("ie", "latin1")
$map.add("oe", "latin1")
$s = SOAPClient.create("http://api.google.com/search/beta2")
$r = $s.execute("urn:GoogleSearch", "doGoogleSearch", $map)
if $s.isFault then [
print $s.getError/message]
print $r
This request will produce the following SOAP XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch/">
<key xsi:type="xsd:string">YOUR DEVELOPER KEY HERE!!!</key>
<q xsi:type="xsd:string">Antal Attila atech</q>
<start xsi:type="xsd:int">0</start>
<maxResults xsi:type="xsd:int">10</maxResults>
<filter xsi:type="xsd:boolean">true</filter>
<restrict xsi:type="xsd:string"/>
<safeSearch xsi:type="xsd:boolean">false</safeSearch>
<lr xsi:type="xsd:string"/>
<ie xsi:type="xsd:string">latin1</ie>
<oe xsi:type="xsd:string">latin1</oe>
</ns1:dooGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Simple example using the Google search service with parameters in Series.
$ser typeof Series
$ser.add("YOUR DEVELOPER KEY HERE!!!")
$ser.add("Antal Attila atech")
$ser.add(0)
$ser.add(10)
$ser.add(true)
$ser.add("")
$ser.add(false)
$ser.add("")
$ser.add("latin1")
$ser.add("latin1")
$s = SOAPClient.create("http://api.google.com/search/beta2")
$r = $s.execute("urn:GoogleSearch", "doGoogleSearch", $ser)
if $s.isFault then [
print $s.getError/message]
print $r
This request will produce the following SOAP XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:doGoogleSearch xmlns:ns1="urn:GoogleSearch/">
<arg0 xsi:type="xsd:string">YOUR DEVELOPER KEY HERE!!!</arg0>
<arg1 xsi:type="xsd:string">Antal Attila atech</arg1>
<arg2 xsi:type="xsd:int">0</arg2>
<arg3 xsi:type="xsd:int">10</arg3>
<arg4 xsi:type="xsd:boolean">true</arg4>
<arg5 xsi:type="xsd:string"></arg5>
<arg6 xsi:type="xsd:boolean">false</arg6>
<arg7 xsi:type="xsd:string"></arg7>
<arg8 xsi:type="xsd:string">latin1</arg8>
<arg9 xsi:type="xsd:string">latin1</arg9>
</ns1:dooGoogleSearch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Simple example using the Amazon search service. Attention for all Amazon
services need to use the setDataType method!
$map typeof Map
$map.setConceptLabel("KeywordSearchRequest")
$map.add("keyword", "Cruise")
$map.add("page", "1")
$map.add("mode", "books")
$map.add("tag", "webservices-20")
$map.add("type", "lite")
$map.add("devtag", "YOUR DEVELOPER KEY HERE!!!")
$map.add("format", "xml")
$map.add("version", "1.0")
$s = SOAPClient.create("http://soap.amazon.com/onca/soap")
$s.setDataType("m:KeywordRequest")
$r = $s.execute("urn:PI/DevCentral/SoapService", "KeywordSearchRequest", $map)
if $s.isFault then [
print $s.getError]
print $r
This request will produce the following SOAP XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:KeywordSearchRequest xmlns:ns1="urn:PI/DevCentral/SoapService">
<KeywordSearchRequest xsi:type="m:KeywordRequest">
<keyword>Cruise</keyword>
<page>1</page>
<mode>books</mode>
<tag>webservices-20</tag>
<type>lite</type>
<devtag>YOUR DEVELOPER KEY HERE!!!</devtag>
<format>xml</format>
<version>1.0</version>
</KeywordSearchRequest>
</ns1:KeywordSearchRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Methods inherited from: Concept
cloneConcept, extendsConcept, fromXML, getAllInheritedConcepts, getConceptAttribute, getConceptAttributeField, getConceptAttributeFields, getConceptAttributes, getConceptConstructors, getConceptElement, getConceptElementField, getConceptElementFields, getConceptElements, getConceptLabel, getConceptMethod, getConceptMethods, getConceptOperators, getConceptType, getErrorHandler, getInheritedConcepts, getResourceURI, hasConceptAttribute, hasConceptElement, hasConceptMethod, hasPath, isHidden, loadContent, setConceptLabel, setErrorHandler, setHidden, setShowEmpty, showEmpty, toTXT, toXML, setResourceURI |
|
Exceptions: |
badURLException :
(Error) | If the URL is not valid. |
Creates and instatiates the SOAP concept with the endpoint URL
Parameters: |
: | The operation (method) name namspace |
: | The method name |
: |
Concept with parameters. You can use here a SeriesConcept (all parameter
elements will have the label named arg0..argX) or MapConcept (all parameter
elements will have the label named Map->Element->Ket value).
If using other Concept then Series or Map will be invoked the concept's toXML
method. |
|
Exceptions: |
connectionException :
(Error) | If unable to connect to SOAP server |
Executes a SOAP requests.
Is the SOAP transaction is faulted this method returns the SOAP error concept.
Is the SOAP transaction faulted it will returns true, in the other case false.
Parameters: |
: | String parameter to specify the request data type attribute |
|
If your SOAP request message use data types specifyed on the server side
you need to set the data type attribute (see the usage)
Parameters: |
: | Encoding namespace attribute value |
|
If your encoding style attribute (SOAP-ENV:encodingStyle) is different
than the default encoding (http://schemas.xmlsoap.org/soap/encoding/)
you can set it other.