php soap-error parsing schema can't import schema from

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


Are there any code examples left?
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.
Creating a new code example
Code snippet title
Source