Hi there. I'm trying to consume a SOAP service provided by Akamai. The
purpose is to programatically expire cached objects on the Akamai network.
It works very simply and easily with their sample perl code, just like this:
use SOAP::Lite +autodispatch => service =>
'https://ccuapi.akamai.com/ccuapi.wsdl';
$results = purgeRequest($user,$pwd,$network,[@options],[@urls]);
I tried to adapt example21 from the nusoap cvs to this purpose but I am
failing. Here's my script:
<?
require_once('/opt/php/lib/php/nusoap.php');
$client = new soapclient('https://ccuapi.akamai.com/ccuapi.wsdl',true);
$client->soap_defencoding = 'UTF-8';
$params=array(
'name' => 'jsd',
'pwd' => 'password',
'network' => 'mynet',
'opt' => array(),
'uri' => array('http://i.i.com.com/cnet.g2/shared/head2/mast_all.jpg')
);
$result = $client->call('purgeRequest', $params);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request,
ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response,
ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str,
ENT_QUOTES) . '</pre>';
?>
here's the output:
Error
wsdl error: http://www.w3.org/2000/10/XMLSchema:string (string) is not a
supported type.
Request
Response
Debug
2004-12-14 15:35:36.021932 soapclient: instantiating wsdl class with
doc: https://ccuapi.akamai.com/ccuapi.wsdl
2004-12-14 15:35:36.022198 wsdl: initial wsdl URL:
https://ccuapi.akamai.com/ccuapi.wsdl
2004-12-14 15:35:36.022326 wsdl: getting WSDL http(s) URL
https://ccuapi.akamai.com/ccuapi.wsdl
2004-12-14 15:35:36.022542 soap_transport_http: scheme = https
2004-12-14 15:35:36.022636 soap_transport_http: host = ccuapi.akamai.com
2004-12-14 15:35:36.022708 soap_transport_http: path = /ccuapi.wsdl
2004-12-14 15:35:36.022900 soap_transport_http: entered send() with data
of length: 0
2004-12-14 15:35:36.023011 soap_transport_http: connect
connection_timeout 0, response_timeout 30, scheme https, host
ccuapi.akamai.com, port 443
2004-12-14 15:35:36.023095 soap_transport_http: connect using https
2004-12-14 15:35:36.023268 soap_transport_http: cURL connection set up
2004-12-14 15:35:36.023395 soap_transport_http: HTTP request: GET
/ccuapi.wsdl HTTP/1.1
2004-12-14 15:35:36.023487 soap_transport_http: HTTP header: Host:
ccuapi.akamai.com
2004-12-14 15:35:36.023573 soap_transport_http: HTTP header: User-Agent:
NuSOAP/0.6.8 (1.81)
2004-12-14 15:35:36.023656 soap_transport_http: HTTP header:
Accept-Encoding: gzip, deflate
2004-12-14 15:35:36.023738 soap_transport_http: HTTP header: Connection:
close
2004-12-14 15:35:36.023825 soap_transport_http: HTTP header:
Content-Length: 0
2004-12-14 15:35:36.023978 soap_transport_http: set cURL payload
2004-12-14 15:35:36.024067 soap_transport_http: send and receive with cURL
2004-12-14 15:35:36.484449 soap_transport_http: No cURL error, closing cURL
2004-12-14 15:35:36.486442 soap_transport_http: found proper separation
of headers and document
2004-12-14 15:35:36.486552 soap_transport_http: cleaned data, stringlen:
3225
2004-12-14 15:35:36.486865 soap_transport_http: No Content-Encoding header
2004-12-14 15:35:36.486953 soap_transport_http: end of send()
2004-12-14 15:35:36.487071 wsdl: got WSDL URL
2004-12-14 15:35:36.487146 wsdl: Parse WSDL
2004-12-14 15:35:36.488039 wsdl: Parsing WSDL schema
2004-12-14 15:35:36.488253 xmlschema: xmlschema class instantiated,
inside constructor
2004-12-14 15:35:36.488924 xmlschema: <http://www.akamai.com/purge>
processing named complexType ListOfString
2004-12-14 15:35:36.489451 xmlschema: <http://www.akamai.com/purge>
processing typed element string of type
http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.489925 xmlschema: <http://www.akamai.com/purge>
processing named complexType PurgeResult
2004-12-14 15:35:36.490341 xmlschema: <http://www.akamai.com/purge>
processing typed element resultCode of type
http://www.w3.org/2000/10/XMLSchema:int
2004-12-14 15:35:36.490708 xmlschema: <http://www.akamai.com/purge>
processing typed element resultMsg of type
http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.491067 xmlschema: <http://www.akamai.com/purge>
processing typed element sessionID of type
http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.491424 xmlschema: <http://www.akamai.com/purge>
processing typed element estTime of type
http://www.w3.org/2000/10/XMLSchema:int
2004-12-14 15:35:36.491776 xmlschema: <http://www.akamai.com/purge>
processing typed element uriIndex of type
http://www.w3.org/2000/10/XMLSchema:int
2004-12-14 15:35:36.492160 xmlschema: <http://www.akamai.com/purge>
processing typed element modifiers of type
http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.492555 wsdl: Parsing WSDL schema done
2004-12-14 15:35:36.493015 wsdl: msg purgeRequest: found part name:
name,http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.493302 wsdl: msg purgeRequest: found part pwd:
pwd,http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.493574 wsdl: msg purgeRequest: found part network:
network,http://www.w3.org/2000/10/XMLSchema:string
2004-12-14 15:35:36.493867 wsdl: msg purgeRequest: found part opt:
opt,true,http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.494140 wsdl: msg purgeRequest: found part uri:
uri,http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.494578 wsdl: msg purgeRequestResponse: found part
return: return,http://www.akamai.com/purge:PurgeResult
2004-12-14 15:35:36.495015 wsdl: portType PurgeApi operation: purgeRequest
2004-12-14 15:35:36.495808 wsdl: current binding: PurgeApiSOAPBinding of
portType: http://www.akamai.com/purge:PurgeApi
2004-12-14 15:35:36.496223 wsdl: current binding operation: purgeRequest
2004-12-14 15:35:36.497432 wsdl: current service: JavaClasses
2004-12-14 15:35:36.497808 wsdl: current port: PurgeApi
2004-12-14 15:35:36.498246 wsdl: Parsing WSDL done
2004-12-14 15:35:36.498447 wsdl: post-parse data gathering for purgeRequest
2004-12-14 15:35:36.498783 soapclient: got 1 operations from wsdl
https://ccuapi.akamai.com/ccuapi.wsdl
2004-12-14 15:35:36.498935 soapclient: call: purgeRequest, Array,
http://tempuri.org, , , rpc, encoded; endpointType: wsdl
2004-12-14 15:35:36.499030 soapclient: opData:
array(9) {
["name"]=>
string(12) "purgeRequest"
["binding"]=>
string(19) "PurgeApiSOAPBinding"
["endpoint"]=>
string(53) "https://ccuapi.akamai.com:443/soap/servlet/soap/purge"
["soapAction"]=>
string(0) ""
["style"]=>
string(3) "rpc"
["input"]=>
array(5) {
["use"]=>
string(7) "encoded"
["namespace"]=>
string(27) "http://www.akamai.com/purge"
["encodingStyle"]=>
string(41) "http://schemas.xmlsoap.org/soap/encoding/"
["message"]=>
string(12) "purgeRequest"
["parts"]=>
array(5) {
["name"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["pwd"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["network"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["opt"]=>
string(40) "http://www.akamai.com/purge:ListOfString"
["uri"]=>
string(40) "http://www.akamai.com/purge:ListOfString"
}
}
["output"]=>
array(5) {
["use"]=>
string(7) "encoded"
["namespace"]=>
string(27) "http://www.akamai.com/purge"
["encodingStyle"]=>
string(41) "http://schemas.xmlsoap.org/soap/encoding/"
["message"]=>
string(20) "purgeRequestResponse"
["parts"]=>
array(1) {
["return"]=>
string(39) "http://www.akamai.com/purge:PurgeResult"
}
}
["transport"]=>
string(36) "http://schemas.xmlsoap.org/soap/http"
["documentation"]=>
string(0) ""
}
2004-12-14 15:35:36.499435 soapclient: serializing param array for WSDL
operation purgeRequest
2004-12-14 15:35:36.499535 wsdl: in serializeRPCParameters with
operation purgeRequest, direction input and 5 param(s), and xml schema
version http://www.w3.org/2001/XMLSchema
2004-12-14 15:35:36.499650 wsdl: opData:
array(9) {
["name"]=>
string(12) "purgeRequest"
["binding"]=>
string(19) "PurgeApiSOAPBinding"
["endpoint"]=>
string(53) "https://ccuapi.akamai.com:443/soap/servlet/soap/purge"
["soapAction"]=>
string(0) ""
["style"]=>
string(3) "rpc"
["input"]=>
array(5) {
["use"]=>
string(7) "encoded"
["namespace"]=>
string(27) "http://www.akamai.com/purge"
["encodingStyle"]=>
string(41) "http://schemas.xmlsoap.org/soap/encoding/"
["message"]=>
string(12) "purgeRequest"
["parts"]=>
array(5) {
["name"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["pwd"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["network"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["opt"]=>
string(40) "http://www.akamai.com/purge:ListOfString"
["uri"]=>
string(40) "http://www.akamai.com/purge:ListOfString"
}
}
["output"]=>
array(5) {
["use"]=>
string(7) "encoded"
["namespace"]=>
string(27) "http://www.akamai.com/purge"
["encodingStyle"]=>
string(41) "http://schemas.xmlsoap.org/soap/encoding/"
["message"]=>
string(20) "purgeRequestResponse"
["parts"]=>
array(1) {
["return"]=>
string(39) "http://www.akamai.com/purge:PurgeResult"
}
}
["transport"]=>
string(36) "http://schemas.xmlsoap.org/soap/http"
["documentation"]=>
string(0) ""
}
2004-12-14 15:35:36.499940 wsdl: have 5 part(s) to serialize
2004-12-14 15:35:36.500047 wsdl: have 5 parameter(s) provided as
arrayStruct to serialize
2004-12-14 15:35:36.500139 wsdl: serializing part "name" of type
"http://www.w3.org/2000/10/XMLSchema:string"
2004-12-14 15:35:36.500229 wsdl: calling serializeType w/named param
2004-12-14 15:35:36.500322 wsdl: in serializeType: name,
http://www.w3.org/2000/10/XMLSchema:string, encoded,
2004-12-14 15:35:36.500398 wsdl: value:
string(3) "jsd"
2004-12-14 15:35:36.500533 wsdl: got a prefixed type: string,
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.500651 wsdl: do not have schema for namespace
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.500760 wsdl:
http://www.w3.org/2000/10/XMLSchema:string (string) is not a supported type.
2004-12-14 15:35:36.500852 wsdl: serializing part "pwd" of type
"http://www.w3.org/2000/10/XMLSchema:string"
2004-12-14 15:35:36.500937 wsdl: calling serializeType w/named param
2004-12-14 15:35:36.501026 wsdl: in serializeType: pwd,
http://www.w3.org/2000/10/XMLSchema:string, encoded,
2004-12-14 15:35:36.501099 wsdl: value:
string(8) "password"
2004-12-14 15:35:36.501229 wsdl: got a prefixed type: string,
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.501335 wsdl: do not have schema for namespace
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.501438 wsdl:
http://www.w3.org/2000/10/XMLSchema:string (string) is not a supported type.
2004-12-14 15:35:36.501522 wsdl: serializing part "network" of type
"http://www.w3.org/2000/10/XMLSchema:string"
2004-12-14 15:35:36.501606 wsdl: calling serializeType w/named param
2004-12-14 15:35:36.501695 wsdl: in serializeType: network,
http://www.w3.org/2000/10/XMLSchema:string, encoded,
2004-12-14 15:35:36.501769 wsdl: value:
string(5) "mynet"
2004-12-14 15:35:36.501900 wsdl: got a prefixed type: string,
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.502006 wsdl: do not have schema for namespace
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.502108 wsdl:
http://www.w3.org/2000/10/XMLSchema:string (string) is not a supported type.
2004-12-14 15:35:36.502192 wsdl: serializing part "opt" of type
"http://www.akamai.com/purge:ListOfString"
2004-12-14 15:35:36.502275 wsdl: calling serializeType w/named param
2004-12-14 15:35:36.502363 wsdl: in serializeType: opt,
http://www.akamai.com/purge:ListOfString, encoded,
2004-12-14 15:35:36.502436 wsdl: value:
array(0) {
}
2004-12-14 15:35:36.502566 wsdl: got a prefixed type: ListOfString,
http://www.akamai.com/purge
2004-12-14 15:35:36.502669 wsdl: have schema for namespace
http://www.akamai.com/purge
2004-12-14 15:35:36.502777 xmlschema: <http://www.akamai.com/purge> in
getTypeDef, found complexType ListOfString
2004-12-14 15:35:36.502876 wsdl: typedef:
array(6) {
["name"]=>
string(12) "ListOfString"
["base"]=>
string(43) "http://schemas.xmlsoap.org/wsdl/soap/:Array"
["typeClass"]=>
string(11) "complexType"
["phpType"]=>
string(6) "struct"
["compositor"]=>
string(8) "sequence"
["elements"]=>
array(1) {
["string"]=>
array(4) {
["name"]=>
string(6) "string"
["type"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["minOccurs"]=>
string(1) "0"
["maxOccurs"]=>
string(9) "unbounded"
}
}
}
2004-12-14 15:35:36.503072 wsdl: serializeType: uqType: ListOfString,
ns: http://www.akamai.com/purge, phptype: struct, arrayType:
2004-12-14 15:35:36.503187 wsdl: no attributes to serialize for XML
Schema type http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.503361 wsdl: serialize elements for XML Schema type
http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.503476 wsdl: no value provided for complexType
element string, so serialize nothing
2004-12-14 15:35:36.503573 wsdl: serializeType returning: <opt
xsi:type="tns:ListOfString"></opt>
2004-12-14 15:35:36.503659 wsdl: serializing part "uri" of type
"http://www.akamai.com/purge:ListOfString"
2004-12-14 15:35:36.503742 wsdl: calling serializeType w/named param
2004-12-14 15:35:36.503832 wsdl: in serializeType: uri,
http://www.akamai.com/purge:ListOfString, encoded,
2004-12-14 15:35:36.503906 wsdl: value:
array(1) {
[0]=>
string(52) "http://i.i.com.com/cnet.g2/shared/head2/mast_all.jpg"
}
2004-12-14 15:35:36.504047 wsdl: got a prefixed type: ListOfString,
http://www.akamai.com/purge
2004-12-14 15:35:36.504153 wsdl: have schema for namespace
http://www.akamai.com/purge
2004-12-14 15:35:36.504256 xmlschema: <http://www.akamai.com/purge> in
getTypeDef, found complexType ListOfString
2004-12-14 15:35:36.504349 wsdl: typedef:
array(6) {
["name"]=>
string(12) "ListOfString"
["base"]=>
string(43) "http://schemas.xmlsoap.org/wsdl/soap/:Array"
["typeClass"]=>
string(11) "complexType"
["phpType"]=>
string(6) "struct"
["compositor"]=>
string(8) "sequence"
["elements"]=>
array(1) {
["string"]=>
array(4) {
["name"]=>
string(6) "string"
["type"]=>
string(42) "http://www.w3.org/2000/10/XMLSchema:string"
["minOccurs"]=>
string(1) "0"
["maxOccurs"]=>
string(9) "unbounded"
}
}
}
2004-12-14 15:35:36.504542 wsdl: serializeType: uqType: ListOfString,
ns: http://www.akamai.com/purge, phptype: struct, arrayType:
2004-12-14 15:35:36.504651 wsdl: no attributes to serialize for XML
Schema type http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.504822 wsdl: serialize elements for XML Schema type
http://www.akamai.com/purge:ListOfString
2004-12-14 15:35:36.504949 wsdl: in serializeType: string,
http://www.w3.org/2000/10/XMLSchema:string, encoded,
2004-12-14 15:35:36.505027 wsdl: value:
NULL
2004-12-14 15:35:36.505154 wsdl: got a prefixed type: string,
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.505268 wsdl: do not have schema for namespace
http://www.w3.org/2000/10/XMLSchema
2004-12-14 15:35:36.505373 wsdl:
http://www.w3.org/2000/10/XMLSchema:string (string) is not a supported type.
2004-12-14 15:35:36.505466 wsdl: serializeType returning: <uri
xsi:type="tns:ListOfString"></uri>
2004-12-14 15:35:36.505551 wsdl: serializeRPCParameters returning: <opt
xsi:type="tns:ListOfString"></opt><uri xsi:type="tns:ListOfString"></uri>
2004-12-14 15:35:36.505711 soapclient: got wsdl error:
http://www.w3.org/2000/10/XMLSchema:string (string) is not a supported type.
I'm sure I'm doing something stupid wrong. Any ideas?
-jsd-
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
|