2010-09-16 121 views
4

我在使用包含https的WS(WSDL)的PHP SoapClient時遇到問題。 我的PHP版本是5.2.5。 在問你之前,是的,我正在使用PHP的Soap和openSSL擴展。PHP SoapClient無法使用https WS

我試圖訪問的網址是: https://id3check.gb.co.uk/gbportalinternational/aspx/id3check_1b.asmx?WSDL

我使用的代碼:

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

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

而構建SoapClient的失敗,我得到以下錯誤:

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 '

誰能告訴我是什麼問題?

感謝

埃雷茲

回答

2

我只是跑你給的代碼,它完美地工作:

<?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()); 

結果

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) 
) 

因此,也許你應該檢查是否有任何網絡問題:是否有防火牆阻止您的通信erver進程? (我認爲它是IIS?)您可能還想檢查safe_mode設置,雖然我懷疑這是這裏的問題。

11

您需要在PHP中啓用OpenSSL才能夠通過https檢索內容。

取消註釋此行的php.ini

extension=php_openssl.dll 

尋找在你的phpinfo()函數的openssl部分:

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