簡體   English   中英

PHP SoapClient無法加載WSDL文件,但它可以加載其他文件

[英]PHP SoapClient can't load WSDL file, but it can load others

我知道這里有無數的線索,但沒有任何建議對我有用。

在嘗試創建新的SoapClient時,我收到錯誤:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: 
Couldn't load from 'https://m2mconnect.ee.co.uk/orange-soap/services/MessageServiceByCountry?wsdl' : 
failed to load external entity "https://m2mconnect.ee.co.uk/orange-soap/services/MessageServiceByCountry?wsdl"

WSDL文件是: https://m2mconnect.ee.co.uk/orange-soap/services/MessageServiceByCountry?wsdlhttps://m2mconnect.ee.co.uk/orange-soap/services/MessageServiceByCountry?wsdl

我認為這可能是一個https問題,但我已成功加載其他wsdl客戶端。 它似乎只是這個EE不會起作用,它變得非常令人沮喪!

我在mac os x主機上用php5.5在一個流浪的實例上運行我的應用程序。 我試過在mac os x上運行它,我也遇到了同樣的問題。

我也試過為SoapClient設置'ssl_method'選項,但這沒有效果。

我試圖卷曲/ wget網址,它得到一個SSL錯誤,而它完成握手與https://paypal.com

有沒有人有任何想法可能導致這個?

更新:

我在流浪盒上運行了這個: curl -v -SSLv3 https://m2mconnect.ee.co.uk/orange-soap/services/MessageServiceByCountry?wsdl並且它連接成功,但是,創建一個SoapClient並將選項ssl_method設置為SOAP_SSL_METHOD_SSLv3不起作用

我最終要求包含SoapClient的BeSimpleSoapClient並使用Curl來獲取SoapService。 我修改了他們的Curl類以允許設置curl ssl版本: https//github.com/robcaw/BeSimpleSoapClient

我現在可以使用瀏覽器訪問WSDL位置。

因此,剩下的唯一答案是:如果在嘗試使用curl或wget下載WSDL時遇到SSL錯誤,那么可以安全地假設PHP具有相同的錯誤 - 解決方案是修復它們 - 作為第一步,在你的問題中提到你的發現。

正如現在看來的那樣,PHP不應該受到責備,你所做的一切都應該有效 - 唯一缺少的是獲取WSDL的網絡連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM