2013-10-30 50 views
0

我寫了一個php庫,它調用了http中的wsdl。想用PHP soap客戶端連接到https主機

現在我想通過https/ssl協議做同樣的事情。

所以我改變了wsdl的路徑,但還不夠。

下面的代碼:

<?php 
    $options = array(
          'trace' => 1, 
          'exceptions' => 0, 
          'login'   => $login, 
          'password'  => $password 
    ); 
    $wsdl= "https://toto.com/tata/ws/tutu?wsdl"; 

    $service = new SoapClient($wsdl,$options); 
    ?> 

在服務器中,我正確地接收命中,但通過HTTP,沒有使用https:

爲了您的信息,我已經啓用的OpenSSL:

openssl 
OpenSSL support  enabled 
OpenSSL Library Version  OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 
OpenSSL Header Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 

你有解釋嗎?

謝謝。

回答

1

WSDL文件確實包含用於服務調用的URL。這是否也改爲HTTPS?如果沒有,你只能看到使用HTTPS的WSDL請求(並且PHP有它的緩存,所以如果沒有禁用,每次都不會發生)。

+0

哦,是的! http和https中的wsdl是相同的,它們將schemaLocation顯示爲http鏈接而不是https。 謝謝! 你知道我是否可以在https中修改wsdl只爲了設置https地址? – superscral

+1

我已經改變了wsdl中的url,所以wsdl的命中現在在https中,但是web服務的下一次命中是在http :(。 – superscral