Re: [SOAP] Can't connect to WSDL via https on PHP 5.5
| From: | Richard Quadling | Date: | Sat, 11 Jan 2014 18:33:33 +0000 |
| Subject: | Re: [SOAP] Can't connect to WSDL via https on PHP 5.5 | ||
| References: | 1 2 3 4 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-3399@lists.php.net to get a copy of this message | ||
On 11 January 2014 18:32, Richard Quadling <rquadling@gmail.com> wrote:
>
>
> On 10 January 2014 10:45, Tobias Zatti <tobi.zatti@gmail.com> wrote:
>
>> Am 09.01.2014 21:44, schrieb Richard Quadling:
>>
>> On 9 January 2014 16:21, Tobias Zatti <tobi.zatti@gmail.com> wrote:
>>>
>>> Hi!
>>>>
>>>> I have written a small php library for some SOAP functions in a wsdl
>>>> file
>>>> and it works perfectly with PHP 5.4.16.
>>>> However, with version 5.5 the connection won't work, I get the following
>>>> error:
>>>>
>>>> SOAP-ERROR: Parsing WSDL: Couldn't load from
>>>> 'https://
>>>> <myServer>/query.jws?WSDL' : failed to load external entity
>>>> "https://
>>>> <myserver>/query.jws?WSDL"
>>>>
>>>> My old code looks like this:
>>>>
>>>> $this->soap = new SoapClient($this->getAPIURL(QUERY));
>>>> return $this->sendSOAP('hello', $params);
>>>>
>>>> and, as already said it works perfectly fine on PHP 5.4.
>>>>
>>>> Now I found that on version 5.5 there is a new option "ssl_method". It
>>>> looks like it has no effect whatsoever, because the result is always the
>>>> same, regardless which option I put. Also the default value is the same
>>>> as
>>>> in PHP 5.4.
>>>> However, I changed my code to this but without success:
>>>>
>>>> try
>>>> {
>>>> $this->soap = new SoapClient($this->getAPIURL(QUERY),
>>>> array (
>>>> "ssl_method" => "SOAP_SSL_METHOD_SSLv23"
>>>> )
>>>> );
>>>> }
>>>> catch (SoapFault $f)
>>>> {
>>>> print $f->faultstring;
>>>> }
>>>>
>>>> I am using php 5.5.6 via XAMPP on my Windows machine.
>>>> Does anyone have any idea what I might do wrong? Or could it be a bug in
>>>> the newest PHP version?
>>>>
>>>> Thanks and best regards
>>>> Tobias
>>>>
>>>>
>>> Can you add the trace and enable the exceptions.
>>>
>>> And with the catch, can just just var_dump($f) rather than just looking
>>> at
>>> the faultstring.
>>>
>>>
>>> Hi,
>>
>> with var_dump and trace the error looks like this:
>>
>> #0 SymAPI->hello(Array ([Input] => it works!)) called at
>> [C:\xampp2\htdocs\api\example.php:20] object(SoapFault)#3 (9) {
>> ["message":protected]=> string(190) "SOAP-ERROR: Parsing WSDL:
>> Couldn't
>> load from
>> 'https://test-api.geotrust.com/webtrust/query.jws?WSDL' :
>> failed to load external entity
>> "https://test-api.geotrust.
>> com/webtrust/query.jws?WSDL" "
>> ["string":"Exception":private]=>
>> string(0) "" ["code":protected]=> int(0)
>> ["file":protected]=> string(41)
>> "C:\xampp2\htdocs\api\symantec_api-1.0.php" ["line":protected]=>
>> int(483) ["trace":"Exception":private]=> array(2) { [0]=>
>> array(6) {
>> ["file"]=> string(41) "C:\xampp2\htdocs\api\symantec_api-1.0.php"
>> ["line"]=> int(483) ["function"]=> string(10)
>> "SoapClient" ["class"]=>
>> string(10) "SoapClient" ["type"]=> string(2) "->"
>> ["args"]=> array(2) {
>> [0]=> string(53)
>> "https://test-api.geotrust.com/webtrust/query.jws?WSDL"
>> [1]=> array(1) { ["ssl_method"]=> string(21)
>> "SOAP_SSL_METHOD_SSLv3" } } }
>> [1]=> array(6) { ["file"]=> string(32)
>> "C:\xampp2\htdocs\api\example.php"
>> ["line"]=> int(20) ["function"]=> string(5) "hello"
>> ["class"]=> string(6)
>> "SymAPI" ["type"]=> string(2) "->"
>> ["args"]=> array(1) { [0]=> &array(1) {
>> ["Input"]=> string(9) "it works!" } } } }
>> ["previous":"Exception":private]=>
>> NULL ["faultstring"]=> string(190) "SOAP-ERROR: Parsing WSDL:
>> Couldn't load
>> from
>> 'https://test-api.geotrust.com/webtrust/query.jws?WSDL' :
>> failed to
>> load external entity "https://test-api.geotrust.
>> com/webtrust/query.jws?WSDL" " ["faultcode"]=> string(4)
>> "WSDL" }
>> BACKTRACE:
>> #0 SymAPI->hello(Array ([Input] => it works!)) called at
>> [C:\xampp2\htdocs\api\example.php:20]
>>
>> I'm not sure how to enable exceptions, and I couldn't find anything
>> specific googling.
>> I think the var dump doesn't help that much. But I know that the wsdl is
>> based on WebLogic and supports SSLv3 and TLS1.0, so it should work with the
>> SOAP_SSL_METHOD_SSLv3 setting.
>>
>>
>> --
>> PHP Soap Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
All seems to be OK.
I'll send you some working code.
--
Richard Quadling
Twitter : @RQuadling