簡體   English   中英

在PHP中使用SoapClient()時出錯

[英]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.

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