[英]Error using SoapClient() in PHP
我正在嘗試使用PHP的SoapClient()訪問WSDL(Web服務定義語言)文件。 我發現WSDL文件已通過身份驗證。 我嘗試通過另一個參數在陣列上傳遞憑據並在服務器上啟用活動SSL,但仍然遇到錯誤。
這是我正在使用的代碼:
$ client = new SoapClient(“ https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl”,array(“ trace” =>“ 1”,“ Username” =>“ username”,“ Password” = >“密碼”));
這是我得到的錯誤:
警告:SoapClient :: SoapClient(https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl)[soapclient.soapclient]:無法打開流:第80行的PATH_TO_FILE中的連接超時
警告:SoapClient :: SoapClient()[soapclient.soapclient]:I / O警告:無法在第80行的PATH_TO_FILE中加載外部實體“ https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl”
致命錯誤:未捕獲的SoapFault異常:[WSDL] SOAP錯誤:解析WSDL:無法從'https://webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl'加載:無法加載外部實體“ https: // PATH_TO_FILE:80中的//webservices.chargepointportal.net:8081/coulomb_api_1.1.wsdl“堆棧跟蹤:#0 /home2/wingstec/public_html/widget/API/index.php(80):SoapClient->SoapClient('https :// webserv ...',數組)#1 {main}在第80行的PATH_TO_FILE中拋出
似乎錯誤表明文件在我們給定的路徑中不存在,但是當我們直接在瀏覽器中運行該路徑時,我們正在獲取該文件
誰能幫我弄清楚到底是什么問題?
首先,請確保您有權從托管帳戶或服務器訪問網站-首先檢查是否可以訪問http webservice(不帶s )。 如果不是,請檢查php.ini中allow_url_fopen是否設置為true。
然后,如果您嘗試建立https連接,則需要本地證書。 看看是否可以添加一個實例化Soap對象,例如
new SoapClient($wsdl, array('local_cert' => $pathToLocalCert));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.