|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-03-21 12:33 UTC] markus dot rietzler at rzf dot fin-nrw dot de
Description: ------------ here is my problem: i want to access a soap-service via https://connect.example.com/portal/portal?wsdl with php 5.3.3 my script worked, with 5.3.10 it does not work anymore. in the xml returned: <service name="PortalService"> <port name="PortalPort" binding="tns:PortalPortBinding"> <soap:address location="http://connect.example.com:80/portal/portal"/> </port> </service> </definitions> so there is a http and not a https location. is this wrong? i am not sure, whether this should work in general (using https but with a http-location). we use a soapservice from an extern service provider which requires us to use https for the calls. in my php script i used $client = new SoapClient('https://connect.example.com/portal/portal?wsdl', array( 'proxy_host' => 'myproxy', 'proxy_port' => '8080', 'trace' => 1, 'exceptions' => 1, // actual use https-endpoint 'location' => 'https://connect.juris.de/jportal/ws/fvportalnrw' )); with php 5.3.3 i could create the soapclient and do my requests. the wsdl is downloaded and cached in /tmp. with php 5.3.10 i get: PHP Fatal error: SOAP-ERROR: Parsing Schema: can't import schema from 'http://connect.example.com:80/portal/portal?xsd=1' in ./t.php on line 9 PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'http://connect.example.com:80/portal/portal?xsd=1' in ./t2.php:9 so the schema could not be downloaded! what's wrong here? was it a bug in 5.3.3 - and it should not have worked there - or is it a bug in 5.3.10 (same for 5.3.8). if i used php 5.3.3 to access the service, a wsdl is cached in /tmp and then i can call the script with php 5.3.10. Test script: --------------- <?php $client = new SoapClient('https://connect.example.com/portal/portal?wsdl', array( 'proxy_host' => 'myproxy', 'proxy_port' => '8080', 'trace' => 1, 'exceptions' => 1, // actual use https-endpoint 'location' => 'https://connect.juris.de/jportal/ws/fvportalnrw' )); print_r($client); ?> Expected result: ---------------- SoapClient Object ( [_proxy_host] => myproxy [_proxy_port] => 8080 [trace] => 1 [_soap_version] => 1 [sdl] => Resource id #9 ) Actual result: -------------- PHP Fatal error: SOAP-ERROR: Parsing Schema: can't import schema from 'http://connect.example.com:80/portal/portal?xsd=1' in ./t.php on line 9 PHP Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing Schema: can't import schema from 'http://connect.example.com:80/portal/portal?xsd=1' in ./t2.php:9 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 14:00:01 2025 UTC |
tried it with php 5.4.0. same error. not able to load the schema. ok: we have to use http-auth to fetch data, also the schema can be loaded without auth. my question is: it is ok to access the uri with https (ssl secured) $client = new SoapClient('https://connect.example.com/portal/portal?wsdl') and then get an answer with <service name="PortalService"> <port name="PortalPort" binding="tns:PortalPortBinding"> <soap:address location="http://connect.example.com:80/portal/portal"/> </port> </service> </definitions> so the soap:address points to http (non ssl!) could this be the error?