A SoapClient wrapper that uses ext-curl.
https://packagist.org/packages/aaharu/curlsoapclient
This class is extended SoapClient.
public CurlSoapClient::CurlSoapClient ( mixed $wsdl [, array $options ] )
- soap_version
- either
SOAP_1_1
orSOAP_1_2
. If omitted,SOAP_1_1
is used.
- either
- compression
- trace
- exceptions
- connection_timeout
- user_agent
- keep_alive
true
as a default
- login
- password
- proxy_host
- proxy_port
- proxy_login
- proxy_password
- authentication
- ssl_method
- redirect_max
- The maximum amount of HTTP redirections to follow. default is 5.
5
as a default
- curl_timeout
- CURLOPT_TIMEOUT
30
as a default
- proxy_type
- http, socks4, socks5
- stream_context
- not necessary with curl
- local_cert
- use
CurlSoapClient::___curlSetOpt
instead
- use
- passphrase
- use
CurlSoapClient::___curlSetOpt
instead
- use
wsdl mode.
use Aaharu\Soap\CurlSoapClient;
try {
$client = new CurlSoapClient('http://webservices.amazon.com/AWSECommerceService/2013-08-01/AWSECommerceService.wsdl', ['trace' => true]);
$client->ItemLookup();
} catch (\SoapFault $fault) {
}
echo $client->__getLastRequestHeaders() . $client->__getLastRequest();
POST /onca/soap?Service=AWSECommerceService HTTP/1.1
Host: webservices.amazon.com
Accept: */*
Connection: Keep-Alive
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://soap.amazon.com/ItemLookup"
Content-Length: 259
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webservices.amazon.com/AWSECommerceService/2013-08-01"><SOAP-ENV:Body><ns1:ItemLookup/></SOAP-ENV:Body></SOAP-ENV:Envelope>
non-wsdl mode.
use Aaharu\Soap\CurlSoapClient;
$client = new CurlSoapClient(null, [
'location' => 'http://example.com/test/location',
'uri' => 'http://example.com/test/uri',
'redirect_max' => 1,
'exceptions' => false,
]);
$client->doSomething();
composer require aaharu/curlsoapclient
## for old PHP
# composer require aaharu/curlsoapclient:1.2.0
With composer installed, run the following from the root of the repository:
composer install
## running built-in server before execute `composer test`
# php -ddisplay_errors=stderr -S localhost:8000 &
composer test
Licensed under the MIT License.