开发者

PHP SoapClient unable to work with https WS

i have a problem working with PHP SoapClient with a WS (WSDL) that contains https. my PHP version is 5.2.5. before you ask, yes, i am using PHP's Soap and openSSL extentions.

the URL i am trying to reach is: https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL

the code i am using:

$url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL";
$options["connection_timeout"] = 25;  
$options["location"] = $url;

$client = new SoapClient($url,$options);

it fails while constructing the SoapClient, and i get the following error:

Warning: SoapClient::SoapClient(https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL): failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\MY-DEV-FOLDER\index.php on line 42 Warning: SoapClient::SoapClient(): I/O warning : failed to load external entity "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL" in C:\MY-DEV-FOLDER\index.php on line 42 Exception thrown - SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL'

can anyone te开发者_如何学Pythonll me what is the problem?

thanks

Erez


You will need to have OpenSSL enabled in PHP to be able to retrieve content over https.

Uncomment this line in php.ini

extension=php_openssl.dll

Look for the openssl section in your phpinfo():

OpenSSL support => enabled  
OpenSSL Library Version => OpenSSL 0.9.8k 25 Mar 2009
OpenSSL Header Version => OpenSSL 0.9.8k 25 Mar 2009


I just ran the code you gave and it worked perfectly:

<?php
$url = "https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL";
$options["connection_timeout"] = 25;
$options["location"] = $url;
$options['trace'] = 1;

$client = new SoapClient($url,$options);

print_r($client->__getFunctions());

results in

Array
(
    [0] => ID3CheckInitialise_1bResponse ID3CheckInitialise_1b(ID3CheckInitialise_1b $parameters)
    [1] => ID3AddressLookupInitialise_1bResponse ID3AddressLookupInitialise_1b(ID3AddressLookupInitialise_1b $parameters)
    [2] => ID3Check_1bResponse ID3Check_1b(ID3Check_1b $parameters)
    [3] => AddressLookup_1bResponse AddressLookup_1b(AddressLookup_1b $parameters)
)

So maybe you should check if there are any network problems: Is there a firewall blocking the communication from within your server process? (I assume it's IIS?) You may also want to check safe_mode settings, although I doubt this is the problem here.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜